Einzelnen Beitrag anzeigen
Alt 05.02.2007, 20:01  
dr.e.
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.633
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Hallo zusammen,

ich möchte noch eine andere Lösung (=sauberste Lösung) dokumentieren, falls mal jemand über das Thema stolpern sollte.

Vorteil einer Frontcontroller-basierten Anwendung ist, dass das Model zur Transformations-Zeit bereits aufgebaut ist und die zur Transformation der Seite enthaltenen Informationen schon enthält. Obige Lösung würde die Model-Informationen doppelt halten, da sie in einem viewManager und in der Frontcontroller-Action stehen. Deshalb muss der Frontcontroller (wird Singleton instanziiert) eine Methode kennen, die einem eine Action (als Referenz) per Name (getActionByName()) zurückgibt und über die der DocumentController auf das Model zugreifen kann. Damit hat der DocumentController zur Transformation alle nötigen Informationen und kann den View aufbauen. Um eine noch sauberer Implementierung zu gewährleisten kapselt die Business-Schicht der Anwendung das getActionByName() nochmal und tritt gegenüber der Präsentations-Schicht als einziger Kontaktpunkt aus. Hierzu muss die Business-Schicht einfach "nochmal" ein getActionByName() implementieren und darin einfach den hier nochmal Singleton instanziierten Frontcontroller verwenden und die Action gemäß dem übergebenen Namen zurückliefern (als Referenz).

Sollten noch Fragen auftauchen -> PN.
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline   Mit Zitat antworten