Grundsätzlich unterteilen sich meine derzeitigen Gedanken in zweite konkrete Problemstellungen, für die ich scheinbar keine eigene Lösung zu finden vermag. Einleitend dazu möchte ich anmerken, dass ich den Sinn und Zweck von sowohl des MVC-Patterns, als auch des Front-Controllers im Groben und Ganzen verstanden habe. Nun möchte ich meine beiden Probleme konkretisieren und hoffe auf eure Anregungen.
Integration des Front-Controllers in die MVC-Architektur
Ich habe mir einen Front-Controller, sowie eine HttpRequest- und eine HttpResponse-Klasse aus dem Buch "PHP Design Patterns von O'Reilly" abgeleitet und realisiert. Der Front-Controller agiert mit der Anfrage (Request) und der Antwort (response). Mein Front-Controller unterstützt zur Zeit folgendes URL-Layout:
Der Front-Controller funktioniert in diesem Kontext einwandfrei - Der Index-Controller wird instanziert und die Methode login() wird ebenfalls erfolgreich entnommen und ausgeführt. Das eigentliche Problem liegt meiner Auffassung darin, dass ich nicht wirklich weiß, wie der besagte Front-Controller anständig in die MVC-Architektur integriert werden kann. Ist das überhaupt eine akzeptable Vorgehensweise?
Hinweis: Mit der Verschachtelung von Modulen werden ich mich gegebenfalls noch beschäftigen, jedoch muss ich dazu erstmal die fundamentale Implementierung vollkommen durchdringen.
Weiterreichung von Objekten
Laut meinem Wissensstand kennt der Controller in den meisten Fällen das Modell und die Präsentationsschicht. Dieses Problem spaltet sich in zwei konkrete Fragestellungen auf:
Ich hoffe inständig auf eure Hilfe und bin dankbar über jede Hilfe.
Integration des Front-Controllers in die MVC-Architektur
Ich habe mir einen Front-Controller, sowie eine HttpRequest- und eine HttpResponse-Klasse aus dem Buch "PHP Design Patterns von O'Reilly" abgeleitet und realisiert. Der Front-Controller agiert mit der Anfrage (Request) und der Antwort (response). Mein Front-Controller unterstützt zur Zeit folgendes URL-Layout:
index.php?modul=index&action=login
Hinweis: Mit der Verschachtelung von Modulen werden ich mich gegebenfalls noch beschäftigen, jedoch muss ich dazu erstmal die fundamentale Implementierung vollkommen durchdringen.
Weiterreichung von Objekten
Laut meinem Wissensstand kennt der Controller in den meisten Fällen das Modell und die Präsentationsschicht. Dieses Problem spaltet sich in zwei konkrete Fragestellungen auf:
- Wie gestaltet sich eine automatische Zuordnung beider Komponenten (Modell, View) in Hinblick auf den Controller? Unter welchen Gesichtspunkten wird eine konkrete Instanzierung besagter Klassen durchgeführt?
- Wie werden Objekte aus externen Klassen - zum Beispiel Benutzer - in das 3-Schichten-System integriert? Mir ist durchaus bewusst, dass die wohl beste Möglichkeit die Dependency-Injection darstellt, jedoch liegt darin mein Problem. Welcher Mechanismus instanziert - die für das Modul - erforderlichen und zugeschnittenen Klassen (Benutzer etc.)? Der Front-Controller dürfte eigentlich keine konkreten Objekte instanzieren, da die Module in diesem Zusammenhang abstrakt behandelt werden müssen.
Ich hoffe inständig auf eure Hilfe und bin dankbar über jede Hilfe.
Kommentar