Frage

Ich bin ein wenig Verwirrung, die bei dem Versuch, rückwirkend eine neue Basis-Controller für mein Projekt zu erstellen. Wenn mich nicht alles täuscht, alles, was ich tun müssen, um eine Datei in application/libraries MY_baseController.php enthält die folgenden genannt erstellen:

class baseController extends Template_Controller
{
  public function __construct()
  {
    parent::__construct();
  }
}

Und dann meine anderen Controllern umschreiben baseController statt Template_Controller zu erweitern:

class Frontpage_Controller extends Template_Controller

class Frontpage_Controller extends baseController

Doch wenn ich das tue, den Zugriff auf das Frontpage_Controller warnt mich, dass:

Class 'Base' nicht gefunden ...

Was bin ich hier fehlt?

War es hilfreich?

Lösung

Nach einiger Fummelei, ich glaube, das im Anschluss an meiner Lösung ist ...

Verschieben MY_baseController.php von application/libraries und in application/controllers. Benennen Sie es base.php und ändern Sie die folgende Zeile ein:

class baseController extends Template_Controller

in

class Base_Controller extends Template_Controller

Jetzt in Ihrem Frontpage-Controller erweitern Base_Controller statt baseController.

Andere Tipps

Stellen Sie sicher, Kohana Konventionen folgen, um sicherzustellen, dass alles Auto-Lasten richtig zu machen! Es gibt ähnliche in Bezug auf Modelle Helfer und Bibliotheken.

Auch wenn Sie Ihre Hauptanwendungssteuerung Ordner sauber halten wollen würde ich nur für Ihre Anwendung Herstellung eines Kohana Modul vorschlagen und Ihr alle Controller-Vorlage und misc Erweiterung setzen da, um sie von Ihrem Haupt-Controller getrennt zu halten.

Nur vergessen Sie nicht, das Modul zu Ihrer Konfigurationsdatei hinzuzufügen!

Ich weiß, das ist eine alte Frage, aber ich dachte, dass ich in einem Wort gesetzt habe. Sie müssen nur die my_ Präfix aus dem Dateinamen zu entfernen, da nur wirklich brauchen, wenn eine Klasse mit dem Suffix _Core im Systemordner erweitern. Zum Beispiel kann die Datei für

class Controller extends Controller_Core

würde genannt MY_Controller.php.

In diesem Fall Benennen Sie einfach die Datei baseController.php und es in den Bibliotheken-Ordner setzen funktionieren würde.

Nichts für ungut, aber ich musste meinen Kopf auf meinem Computer schlagen, um es mit Kohana 3.1 arbeiten. Ich endlich herausgefunden, dass die Syntax Template Controller erweitern sollte sein:

class Controller_Base extends Controller_Template
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top