L'extension du contrôleur modèle dans Kohana
-
19-09-2019 - |
Question
Je vais avoir un peu de confusion en essayant de créer rétroactivement un nouveau contrôleur de base pour mon projet. Si je ne me trompe pas, tout ce que je dois faire est de créer un fichier dans application/libraries
appelé MY_baseController.php
contenant les éléments suivants:
class baseController extends Template_Controller
{
public function __construct()
{
parent::__construct();
}
}
Et puis réécrire mes autres contrôleurs pour étendre baseController
au lieu de Template_Controller
:
class Frontpage_Controller extends Template_Controller
à
class Frontpage_Controller extends baseController
Pourtant, quand je fais cela, l'accès au Frontpage_Controller
me prévient que:
Class 'BaseController' not found ...
Qu'est-ce que je suis absent ici?
La solution
Après quelques tripoter, je pense que ce qui suit est ma solution ...
Déplacer MY_baseController.php
de application/libraries
et dans application/controllers
. Renommer pour base.php
et changer la ligne suivante:
class baseController extends Template_Controller
dans
class Base_Controller extends Template_Controller
au sein de votre contrôleur Frontpage, étendre Base_Controller
au lieu de baseController
.
Autres conseils
Assurez-vous que vous suivez les conventions Kohana pour vous assurer que tout auto-charges correctement! Il y a d'autres similaires par rapport aux modèles et aides de soutien des bibliothèques.
Aussi, si vous voulez garder votre dossier principal du contrôleur d'application propre, je suggère faire un module Kohana juste pour votre application et mettre tous vos modèles et contrôleurs extension misc là pour les garder séparés de vos contrôleurs principaux.
Il suffit de ne pas oublier d'ajouter le module à votre fichier de configuration!
Je sais que c'est une vieille question, mais je pensais que je mettrais en un mot. Il vous suffit de supprimer le préfixe de my_ du nom de fichier que vous ne vraiment besoin lors de l'extension d'une classe suffixé par _Core dans le dossier système. Par exemple, le fichier pour
class Controller extends Controller_Core
sera nommée MY_Controller.php.
Dans ce cas, en nommant simplement le fichier baseController.php et de le mettre dans le dossier des bibliothèques fonctionnerait.
Pas d'offense, mais je devais me cogner la tête sur mon ordinateur pour le faire fonctionner avec Kohana 3.1. J'ai finalement compris que la syntaxe d'extension du contrôleur modèle doit être:
class Controller_Base extends Controller_Template