Helpers em CodeIgniter

O que são os helpers no framework PHP CodeIgniter, como carregá-los, utilizá-los para resolver tarefas habituais e configurar seu carregamento automático.

Por Miguel Angel Alvarez - Tradução de Celeste Veiga


Publicado em: 28/12/11
Valorize este artigo:
Os helpers são uma das duas bibliotecas de código disponíveis em CodeIgniter e a mais simples de manejar em princípio, posto que são funções que estão à nossa disposição sem depender de nenhum objeto. Vamos vê-lo detidamente neste artigo do Manual de CodeIgniter.

Em qualquer framework PHP, como poderemos imaginar, se coloca à nossa disposição uma biblioteca de funções que resolvem as coisas típicas que podemos necessitar ao realizar uma aplicação web. Na verdade, uma das vantagens de usar frameworks é justamente não ter que programar por nós mesmos todas as funções que se utilizam reiteradas vezes na maioria dos web sites profissionais. Assim, os helpers são uma das bibliotecas de funções que suponho esperávamos que CodeIgniter nos proporcionara.

Podemos dizer que os helpers são jogos de funções, ordenados por temática em diferentes pacotes, que nos ajudam na realização de tarefas habituais nas aplicações web. Existem helpers para muitas coisas diferentes, como para trabalho com arrays, datas, cookies, emails, URLs, formulários, etc.

Nota: Em CodeIgniter dispomos de dois tipos de bibliotecas de códigos, Helper e Class. Os Helpers são funções propriamente ditas e as Class são classes de programação orientada a objetos (POO). Seu carregamento e utilização são ligeiramente diferentes, assim que as veremos por separado. No momento, vamos ver que os helpers não dependem de programação orientada a objetos, mas que são funções (de programação funcional ou de procedimento, mais tradicionais que a POO) que poderemos utilizar para solucionar temas concretos e cujo uso é independente.
Os helpers estão armazenados no diretório system/helpers ou no diretório system/application/helpers. Ao tentar carregar um helper (que se deve realizar de maneira explícita, como veremos mais adiante) CodeIgniter olhará se se encontra primeiro em system/application/helpers e se não for assim o buscará na pasta system/helpers.

Carregamento de um helper em CodeIgniter

Em CodeIgniter não se carrega de maneira predeterminada nenhuma biblioteca ou jogo de funções (salvo algumas bibliotecas muito básicas), para aumentar o rendimento do sistema, não fazendo processar a PHP nada que realmente não necessite. Por isso, temos que carregar os helpers, assim como qualquer outra biblioteca explicitamente, seja em todas as páginas através dos arquivos de configuração, ou em uma página específica através das funções de carregamento de helpers.

Uma vez que um helper tenha sido carregado, estará a nossa disposição nos controladores e visões, de maneira global. Para carregar um helper podemos invocar este código.

$this->load->helper('meuhelper');

No código anterior, a cadeia "meuhelper" corresponde ao nome do helper que se deseja carregar. Este nome é uma palavra como "url", "file", etc. e não o próprio arquivo do código do helper. Por exemplo, com o código:

$this->load->helper('url');

Se está carregando o helper com nome "url" que realmente está no arquivo "url_helper.php". Porém, para carregá-lo simplesmente temos que indicar o nome do helper e não o nome do arquivo onde está o helper.

Você pode carregar um helper em qualquer parte do código de seus controladores ou inclusive das visões (embora não seja uma boa prática carregar helpers nas visões), desde que você o carregue antes de utilizá-lo. Em um controlador você poderia carregar o helper no constructor, e com isso estaria disponível em todas as funções do mesmo, ou então em uma das funções onde você o necessite.

Você pode carregar múltiplos helpers através de uma única chamada a load().

$this->load->helper( array('cookie', 'file', 'form') );

Carregamento automático de helpers

Em CodeIgniter temos à disposição os arquivos de configuração para definir coisas como o carregamento automático de helpers, que estarão disponíveis de maneira predeterminada em toda a aplicação sem que os tenhamos que carregar cada vez que os pretendamos utilizar. O carregamento automático nos poupará repetir o código de carregamento dos helpers que desejemos em toda a aplicação y como poderemos imaginar, é uma boa ideia quando pensamos usar um helper em vários sites diferentes.

O arquivo de configuração que temos que editar para definir os helpers que desejamos carregar de maneira predeterminada é o seguinte:

system/application/config/autoload.php

Para indicar que helpers queremos carregar temos que editar o array $autoload, em seu índice "helpers", com um código parecido ao seguinte:

$autoload['helper'] = array('url', 'file', 'cookie');

Extender helpers em CodeIgniter

Os helpers podem ser estendidos com novas funcionalidades personalizadas por nós mesmos. Para isso, você tem que criar um arquivo com o helper modificado com suas próprias funções e colocá-lo no diretório system/application/helpers e nomeá-lo como o helper original mas com o prefixo "MY_".

Nesse arquivo modificado do helper você poderá acrescentar as funções que quiser ou inclusive modificar o código das funções já existentes nos próprios helpers.

A lista completa de helpers de CodeIgniter

Podemos saber os helpers que se encontram à nossa disposição na guia do usuário de CodeIgniter, que está na própria página do framework. Embora essa guia de usuário esteja em Inglês, não resulta difícil de seguir e você poderá encontrar cada helper e suas funções relatadas com bastante detalhe. No futuro mostraremos alguns exemplos de uso de pelo menos os helpers mais fundamentais.






Usuários :    login / registro

Manuais relacionados
Categorias relacionadas
O autor

Home | Sobre nós | Copyright | Anuncie | Entrar em contato