3 Stimmen

Controller-Vererbung in Cake PHP?

Hat das schon einmal jemand ausprobiert? Ist es möglich, und wenn ja, auf welche Art von Problemen werde ich stoßen, wenn ich es zu erreichen versuche?

4voto

Ronny Vindenes Punkte 2313

Wenn das Ziel darin besteht, die Logik zwischen Controllern zu teilen:

  • Fügen Sie die Logik zum AppController hinzu, um sie mit allen Controllern in Ihrer Anwendung zu teilen.

  • Erstellen Sie eine Komponente und fügen Sie diese zu $this->components für die Controller hinzu, die Sie gemeinsam nutzen möchten.

Das Hinzufügen von zusätzlicher Vererbung zwischen Controllern sollte nur als letzter Ausweg in Betracht gezogen werden, da Sie besonders darauf achten müssen, wie Komponenten und Helfer gehandhabt werden. Z.B. müssen Sie $this->components & $this->helpers manuell mit dem AppController und dem Controller, von dem Sie erben, zusammenführen.

2voto

alecho Punkte 427

Sie werden Probleme bekommen mit $components y $helpers Eigenschaften nicht zusammenführen und stattdessen überschreiben. Achten Sie darauf, dass Sie protected $_mergeParent = 'YourParentClass' um dies ordnungsgemäß durchführen zu lassen. Der Standardwert für diese Funktion ist 'AppController' .

Quellcode: http://api.cakephp.org/2.4/source-class-Controller.html#294-301

1voto

Warum nicht versuchen? Zumindest wird es bereits mit den Klassen Controller -> AppController -> MyController gemacht.

0voto

DreamWerx Punkte 2848

Sicher, Sie können leicht subclass Controller in Cake.. und dann würden Sie typischerweise ihre Hook-Funktion wie "beforeFilter", "afterFilter", etc. nutzen, um Laufzeitlogik zu Ihren Controllern hinzuzufügen Ich setze typischerweise mindestens 1 abstrakten Controller zwischen Cakes Controller und den endgültigen Controller, den Sie in der Route konfigurieren.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X