MVC – Einführung durch ein eigenes kleines „Framework“

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„.