Code Igniter – como carregar um helper em um model?

Nos últimos meses estou trabalhando bastante em dois projetos com Code Igniter: um manager (MongoDB + Code Igniter) e o sistema de e-commerce do Eu Compraria!

Aprendi vários macetes do framework e também melhorei o conhecimento que eu achava que tinha de MVC, antes eu fazia um uso excessivo de helpers para manipular coisas que hoje vejo que deveria estar no model – e em algumas funções precisei usar helpers no model, e não queria sobrecarregar a aplicação carregando este helper sempre.

Como carregar um helper em um model?

Em um controller normal carregar um helper do Code Igniter é muito simples:

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

O $this no controller se refere a instância do Code Igniter e é ela que carrega os helpers, models e tudo mais do CI. Quando estamos em um model (estou usando Data Mapper e recomendo que você faça o mesmo) o $this é uma referência do própio objeto do model.

Para isso no model temos que recuperar a instância do CI e depois fazer com que esta carregue o helper (ou qualquer outra parte do código que o sistema precise), por exemplo:

$ci = get_instance();
$ci->load->helper('url');

Pronto, agora você pode carregar helpers, models e bibliotecas onde quiser: model, helper e bibliotecas.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *