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?

Foi útil?

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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top