Extensões modulares do CodeIgniter
-
27-09-2019 - |
Pergunta
Estou tentando implementar Extensões modulares em uma configuração CodeIgniter 2, mas estou tendo alguns problemas. Eu segui as instruções de instalação no wiki e tudo estava funcionando bem. Então comecei a brincar um pouco e tentar usá -lo. Tudo o que fiz foi criar um novo módulo chamado usuários com as pastas necessárias e adicionou uma classe modelo chamada Usuários_m. Tentei então carregar isso no meu controlador de boas -vindas. De acordo com o wiki, isso deve ser muito direto. Eu simplesmente adicionei esta linha
$this->load->model('users/users_m');
ao construtor do meu controlador de boas -vindas.
Infelizmente, neste momento, recebo a tela branca da morte.
Então eu tentei outra coisa. Desta vez, removi a linha do modelo de carga e adicionei
$this->output->enable_profiler(TRUE);
Desta vez, recebi a página de boas -vindas e recebi o Profiler, mas no topo da página recebi este erro:
A PHP Error was encountered
Severity: Notice
Message: Undefined property: CI::$profiler
Filename: MX/Loader.php
Line Number: 145
Não sei se essas duas tentativas estão relacionadas ou não, mas obviamente há algo que não está certo na minha configuração. Alguém poderia me apontar na direção certa?
Solução
Se você acessar o modelo do controlador no mesmo módulo, poderá carregá -lo usando apenas:
$this->load->model(‘user_m’);
Você só tem que fazer $this->load->model(‘module/model_name’);
Quando seu carregamento cruzado entre os módulos.
Só para ter certeza, seu modelo está localizado aqui, certo?
application/modules/users/models/users_m.php
Quanto ao erro do Profiler:
1) Você fez a instalação Etapa 5 e coloque os principais arquivos de núcleo de extensões modulares no aplicativo/núcleo?
2) Você tem a versão mais recente do HMVC? Houve atualizações para mx/carregador.php no Últimos dois dias.
Ps. Ótimo tutorial sobre HMVC: http://net.tutsplus.com/tutorials/php/hvmc-an-introduction-and-application/
Outras dicas
Se você tem estrutura de pastas como:
application/
modules/
users/
models/
users_m.php
Em seguida, use isso para chamar modelos em controlador
$this->load->model('users/users_m','',TRUE);