von Andreas W. am 07.10.2011, 16:34
Hallo nettotal!
Entschuldige die verspätete Antwort. Habe deinen Post leider erst gestern Abend gesehen und da war es schon ein bisschen zu spät für mich.
Nun aber zu deinen Fragen. Natürlich arbeit man mit einer TemplateEngine, da es viel zu umständlich wäre das Layout jedesmal neu zu erstellen. Da man oftmals jedoch mehrere Templates ineinander verschachteln möchte oder sogar noch bevor der Controller überhaupt ausgeführt wird, eine Ausgabe machen möchte, schreibt man alles direkt in das Response -Objekt und lässt die Ausgabe den FrontController übernehmen.
In diesem Zusammenhang ist das FilterChain und Intercepting-Filter-Pattern besonders von Bedeutung, da sie die Ausführung von Filtermechanismen vor und nach der Ausführung des Controllers übernehmen. Ein Beispiel ist die Authentifizierung von Benutzern. Diese kann man als PreFilter oder PreProcess implementieren, sodass der Controller im Fall einer fehlgeschlagenen Authentifizierung überhaupt nicht ausgeführt wird. Die Ausgabe könnte in diesem Fall durch den Filter in Form eines 401 Fehlers "Unauthorized" stattfinden.
Ein weiteres Pattern, das in diesem Zusammenhang genannt werden sollte ist das Event-Dispatcher-Pattern, das die Behandlung von Events erleutert. Im Falle der Authorisierung könnten weitere Mechanismen wichtig sein. Logging ist ein solcher Mechanismus. Es werden sogenannte EventHandler geschrieben, die beim EventDispatcher registriert werden und dann zum Beispiel das Logging der Anmeldungen übernehmen.
Ich hoffe ich konnte dir etwas helfen. Bei Fragen einfach nochmal melden.
Gruß Andreas