No ci você pode criar arquivos com funções php que você chama de helpers, estas funções podem ser usadas no controller, views e models (de acordo com o padrão MVC as views não seriam um bom lugar para se chamar um helper já que lá não é lugar de lógica de aplicação).
O problema é que originalmente estes helpers não possuem uma forma fácil e transparente para acessar as funções do ci (como funções das classes bd, session, config etc.). Mas através do método get_instance() esta tarefa fica bem simples.
Para se criar um helper não tem segredo: dentro da pasta application de sua aplicação ci tem uma pasta chamada helpers. Dentro dela você pode criar um arquivo chamado login_helper.php por exemplo. Dentro dele podemos colocar o seguinte conteúdo dentro das tags php:
function logout_usuario() {
$ci = & get_instance();
$ci->load->library('session');
$ci->session->unset_userdata('usuario_logado');
}
Através do comando get_instance eu consigo acessar uma instância do objeto global do ci. Com este objeto tenho acesso as classes, bibliotecas e outros helpers existentes, podendo assim usá-los nos meus próprios helpers. Se quiséssemos usar a biblioteca de encriptação por exemplo bastaria fazer o seguinte:
$ci = & get_instance();
$ci->load->library('encrypt');
$ci->encrypt->encode('valor secreto', 'chave do valor secreto');
Usamos o operador & junto ao comando get_instance() para pegar uma referência direta ao objeto global do ci, assim evitando uma cópia do objeto em memória.
Para você acessar seu helper basta fazer isso no controlador por exemplo:
$this->load->helper('login');
logout_usuario();
Note que ao carregar o helper ignoramos o "_helper.php" do nome do arquivo.
A dica está dada, até a próxima!
Nenhum comentário:
Não é permitido fazer novos comentários.