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?

Était-ce utile?

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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top