Estendendo o controlador de modelo em Kohana
-
19-09-2019 - |
Pergunta
Estou tendo um pouco de confusão na tentativa de criar retroativamente um novo controlador base para o meu projeto. Se não me engano, tudo o que preciso fazer é criar um arquivo em application/libraries
chamado MY_baseController.php
contendo o seguinte:
class baseController extends Template_Controller
{
public function __construct()
{
parent::__construct();
}
}
E depois reescreva meus outros controladores para estender baseController
ao invés de Template_Controller
:
class Frontpage_Controller extends Template_Controller
para
class Frontpage_Controller extends baseController
No entanto, quando eu faço isso, acessando o Frontpage_Controller
Me alerta que:
A classe 'Basecontroller' não encontrada ...
O que estou perdendo aqui?
Solução
Depois de mexer, acho que o seguinte é minha solução ...
Jogada MY_baseController.php
a partir de application/libraries
e entrar em application/controllers
. Renomeie -o para base.php
e altere a seguinte linha:
class baseController extends Template_Controller
em
class Base_Controller extends Template_Controller
Agora dentro do seu controlador de página frontal, estenda -se Base_Controller
ao invés de baseController
.
Outras dicas
Certifique-se de seguir convenções de kohana para garantir que tudo seja carregado automático corretamente! Existem semelhantes em relação aos ajudantes e bibliotecas de modelos.
Além disso, se você deseja manter a pasta principal do controlador de aplicativos limpa, sugiro fazer um módulo Kohana apenas para o seu aplicativo e colocar todo o seu modelo e controladores de extensão MISC para mantê -los separados dos seus principais controladores.
Só não se esqueça de adicionar o módulo ao seu arquivo de configuração!
Eu sei que essa é uma pergunta antiga, mas pensei em colocar uma palavra. Você só precisa remover o prefixo my_ do nome do arquivo, pois você realmente precisa apenas ao estender um sufixo de classe com _core na pasta do sistema. Por exemplo, o arquivo para
class Controller extends Controller_Core
seria nomeado my_controller.php.
Nesse caso, apenas nomear o arquivo Basecontroller.php e colocá -lo na pasta da biblioteca funcionaria.
Sem ofensa, mas eu tive que bater na cabeça no meu computador para que ele trabalhe com o Kohana 3.1. Finalmente descobri que a sintaxe para estender o controlador de modelo deve ser:
class Controller_Base extends Controller_Template