Newton Wagner

se desenvolvendo na web

Bug estendendo o Code Igniter: MY_Model

with one comment

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.

Written by Newton Wagner

December 12th, 2006 at 5:59 pm

Posted in framework,php

Tagged with ,

One Response to 'Bug estendendo o Code Igniter: MY_Model'

Subscribe to comments with RSS or TrackBack to 'Bug estendendo o Code Igniter: MY_Model'.

  1. [...] ATENÇÃO: No meu entendimento existe um BUG no framework em relação ao carregamento do MY_Model, conforme observação acima. A solução foi reportada para a equipe do CI, mas não tive retorno. A quem interessar, veja mais informações no artigo do BUG no Loader de Models. [...]

Leave a Reply