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!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~