Bug estendendo o Code Igniter: MY_Model
No meu artigo sobre como estender o Core do Code Igniter, eu informei sobre um possível bug que não nos permite criar nosso MY_Model, como manda o user guide da framework.
Reportei o bug no fórum e até hoje não obtive resposta do desenvolvedor do CI, mas acredito que a solução que encontrei é aceitável. A alteração deve ser realizada no arquivo Loader.php, que está na pasta system\libraries. No método model() desta classe, temos o seguinte trecho:
if ( ! class_exists('Model'))
{
require_once(BASEPATH.'libraries/Model'.EXT);
}
Ou seja, ele carrega a classe Model, mas não realiza nenhuma verificação se criamos alguma estensão (MY_Model). Para resolver o problema, verifiquei que existe uma função que executa esta tarefa de carregar uma classe buscando por extensões. Logo, bastava utilizá-la. No lugar do código anterior, coloquei a chamada para a função:
load_class('Model', false);
O if não é necessário, pois a função também realiza esta verificação. O segundo parâmetro é utilizado para que a classe não seja instanciada, apenas carregada. Assim, evitamos o problema de instanciar classes, dentro de um controle, sem que elas tenham sido definidas.
If you're new here, you may want to subscribe to my RSS feed. Thanks for visiting!
Related Posts
Fatal error: Call to undefined function similar_posts() in /home/owshit/public_html/newtonwagner/wordpress/wp-content/themes/cms2/single.php on line 74