CodeIgniter Drivers
2 de janeiro de 2012, em Passos Iniciais, por Tárcio Zemel
Drivers no CodeIgniter, apesar de ser algo relativamente novo no framework, não tem nada de complicado. Na verdade, drivers não passam de bibliotecas, mas com característica e modo de usar ligeiramente diferentes. Como já foi abordado aqui, no CodeIgniter Brasil, como carregar bibliotecas e como criar bibliotecas no CodeIgniter, chegou a hora de abordar os Drivers do CodeIgniter.
Drivers no CodeIgniter
Como foi dito, drivers são, somente, um tipo diferente de library que trabalha mais com o conceito de herança do PHP, quer dizer, existe uma classe mãe e outras classes filhas quaisquer. Classes filhas têm acesso à classe mãe, mas não a suas “classes irmãs”.
Então, drivers podem ser usados em situações em que a programação e organização de uma ou mais bibliotecas de um projeto sejam beneficiados ao serem esta(s) classe(s) dividida(s) em diversas outras classes.
Criando drivers no CodeIgniter
Drivers devem ser criados no diretório system/libraries, em sua própria pasta, que deve ter o mesmo nome da classe mãe. Dentro deste diretório deve existir outra pasta chamada drivers, que conterá todas as possíveis classes filhas.
Para que fique mais claro, veja o seguinte modelo de estrutura de drivers no CodeIgniter:
- /application/libraries/Driver_name
- Driver_name.php
- drivers
- Driver_name_subclass_1.php
- Driver_name_subclass_2.php
- Driver_name_subclass_3.php
Usando drivers no CodeIgniter
Para usar um driver, primeira é preciso inicializá-lo (tal como fazemos com libraries) da seguinte maneira:
$this->load->driver('driver_name'); |
Métodos dessa classe são invocados usando:
$this->driver_name->method(); |
As classes filhas – os drivers, propriamente ditos – podem ser chamados diretamente por sua classe mãe, sem a necessidade de iniciar cada uma delas:
$this->driver_name->child_one->some_method(); $this->driver_name->child_two->another_method(); |
Bem tranquilo, certo? Como dissemos, não passam de bibliotecas do CI.
Exemplo de driver no CodeIgniter
Pelo fato de já termos passado sobre alguns artigos sobre libraries e pelo conceito e conteúdo deste artigo, já é possível entender o funcionamento e dinâmica dos drivers no CodeIgniter. Mas, para fixar um conceito, é sempre interessante a visualização e análise de algum exemplo concreto.
E, para o caso, indico o projeto no GitHub que foi criado, justamente, para servir de exemplo: CI2_Drivers_example.
Ao baixar e analisar os arquivos, certamente você entenderá melhor como é funcionamento deste recursos interessantíssimo do framework e poderá, a partir de agora, julgar corretamente ao escolher quando usar drivers no CodeIgniter.
3 comentários em "CodeIgniter Drivers"
Tárcio Zemel em 7 de janeiro de 2012
Sim, a Input Class é inicializada automaticamente (apesar de o assunto não ser muito relacionado ao post, rsrs).
Ainda vamos tratar sobre isso aqui no blog, mas dê uma olhadinha na documentação oficial da Input Class que lá explica o básico.
Abraços!
João Matias em 17 de janeiro de 2012
valew pela dica, e me desculpe por ter me antecipado ao assunto…era uma dúvida persistente….consegui resolver com alguns foruns gringos…..o problema estava no action do form…fico aguardo mais sobre isso no seu blog!!! abraços




João Matias em 6 de janeiro de 2012
Fala Guri!! Parabens por sempre dar continuidade aos assuntos desse excelente Framework!
Kara, estou tendo problema com o comando $this->input->post('nome_do_campo');
Não consigo pegar os values dos inputs no meu form, através do post…será que esqueci de carregar alguma coisa e mudar alguma configuração? (a classe input é carregada automaticamente, certo?)