Erweiterungsmöglichkeiten
An dieser Stelle haben wir das Gerüst für eine Webanwendung erstellt. Jetzt könnten wir im Controller noch eine beforeAction()
anlegen, die vor jeder Action ausgeführt wird. Darin könnte dann zum Beispiel eine Session gestartet werden. Mit einer afterAction()
könnten dann ständig wiederkehrende Parameter der Seite wie etwa Meta-Tags generiert werden.
Erweiterungen für die View könnten eine Hierarchie enthalten. Damit wäre es möglich in einer layout.phtml
das HTML-Gerüst zu hinterlegen.
Komponenten/Services
In einer realen Webanwendung wird es sehr schnell notwendig werden Logiken aus dem Controller in eigenständige Klassen zu packen. So würde der Versand von E-Mails natürlich in einer Mailer-Klasse gekapselt, die dann von verschiedenen Controllern verwendet werden kann. Solche Klassen werden wahlweise als Service oder als Komponente bezeichnet.
Abhängigkeiten auflösen
Eine Abhängigkeit entsteht, wenn eine Klasse eine andere zwingend benötigt um ihre Aufgabe erfüllen zu können. Unser IndexController
benötigt beispielsweise \Mvc\Model\User
, \Mvc\Library\View
und \Mvc\Library\NotFoundException
, hat also drei Abhängigkeiten. Ein vollständiges Framework bietet hierfür eine Art von „Dependency Injection„.