Table of Contents : Das Handbuch

Controller-Erweiterungen

Eine Komponente ist eine Klasse, die uns bei der Controller-Logik unterstützt. Soll eine Programm-Logik von verschiedenen Controllern (oder Applikationen) gemeinsam benutzt werden, ist eine Komponente in der Regel die richtige Wahl. Als Beispiel sei die Core-Klasse EmailComponent erwähnt, mit der das Erstellen und Versenden von E-Mails ein Kinderspiel ist. Anstatt eine Methode die diese Aufgabe erfüllt in einem Controller zu implementieren, kann diese Logik gebündelt werden um sie gemeinsam benutzen zu können.

Controller verfügen des Weiteren über Callback-Routinen. Diese Callbacks sind für den Fall gedacht, daß Programmlogik zwischen CakePHP's internen Transaktionen eingefügt werden soll. Verfügbare Callbacks sind:

  • beforeFilter(), wird vor jeglicher Controller-Aktion ausgeführt
  • beforeRender(), wird nach der Controller-Logik, aber vor dem Rendern des Views ausgeführt
  • afterFilter(), wird nach allen Controller-Aktionen einschließlich dem Rendern des Views ausgeführt. Zwischen afterRender() und afterFilter() gibt es keinen Unterschied, außer wenn die Funktion render() manuell in einer Controller-Methode aufgerufen wurde und anschließend noch Code ausgeführt wird.