Gunther: + (PHP) Template-Parser/ -Engine und MVC

Beitrag lesen

Hi dedlfix!

Vielen Dank für deine Antwort.
Jetzt ist mir auch endlich (endgültig) klar geworden, was mich bis dato immer (leicht) irritiert hat. ;-)

  • Die Frage, die sich mir dabei aber stellt ist, woher weiß ich (genauer: das Script), welche Daten denn nun genau benötigt werden? Es macht ja keinen Sinn, einfach immer alle Daten bereitzustellen/ -halten, wenn nur ein Bruchteil davon benötigt wird.

Das ist im MVC-Muster Aufgabe des Controllers. Der holt die Daten aus dem Model, wobei er selbst weiß, welches Model dazu wie zu melken ist. Und er übergibt sie dem Template-System, wobei er dazu weiß oder ermittelt, welches Template genau zur Ausgabe verwendet werden soll.

Ich habe das ganze System immer mehr von der Seite der Templates aus betrachtet, weil diese ja schließlich und endlich das entscheidende Glied in der Kette sind, welches für die Darstellung/ Ausgabe zuständig ist. Bei der Planung erscheint es mir zumindest auch intuitiver, die möglichen Templates zu planen/ kreieren, als die verschiedenen Action-Controller zu konzipieren.

  • Muss ich dafür dann diese Informationen wiederum separat irgendwo vorhalten und pflegen, oder gibt es "elegantere" Lösungen?

Es gibt mehrere Möglichkeiten. Eine andere Möglichkeit wäre deshalb, diese Daten in einem Konfigurationssystem abzulegen.

Ja, aber ...!
Schränkt nicht genau diese Variante die Flexibilität enorm ein, bzw. erhöht den Administrationsaufwand?

Wenn man es so herum macht, dann muss ich ja für jeden "Ausgabezweck" irgendwo definieren
a) welche(s) Template(s) benötigt wird und
b) zusätzlich noch definieren, welche Action-Controller dafür von Nöten sind, um alle erforderlichen Daten aus dem Model dafür bereitzustellen
richtig?

Und das jedes Mal ggf. beides pflegen, wenn sich das Template als solches, oder im Template etwas ändert?

  • Mir wäre ja eine "automatisierte" Lösung, die erst das/ die jeweilige(n) Template(s) "analysiert", und dann aufgrund der erforderlichen Werte quasi selbstständig die nötigen "Module" zur Bereitstellung der erforderlichen Daten inkludiert/ ausführt lieber. Wie setzt man so etwas prinzipiell am besten/ einfachsten um, bzw. gibt es das irgendwo schon fertig?

Der Action-Controller ist der Chef. Er frag praktischerweise nicht erst das Template, was es gern hätte, sondern weiß, was das Template kann.

Was hieltest du denn von der Variante, diese Informationen jeweils in jedem Template mit zu speichern?

Beispiel:
Ich dachte mir das Ganze eher in vielen kleinen Einzel-Templates (mit jeweils zugehörigem Action-Controller zur Beschaffung der benötigten Daten), die sich dann im Baukasten-Prinzip zusammenstellen lassen.
Also bspw. ein Template mit Controller für die Breadcrumb-Navigation, eines für das Menü, eines für Kommentare zu einem Artikel, etc. Diese Einzel-Templates lassen sich dann nach Belieben in das Gesamt-Seiten Template integrieren (und zwar ohne irgendwelchen zusätzlichen Administrationsaufwand, bzw. Änderungen in irgendwelchen Konfigurationseinstellungen/ -dateien).

Wäre das (deiner Meinung nach) eine praktikable Lösung (auch wenn sie vielleicht nicht 100%ig dem MVC-Modell entspricht)?

Der Entwicklungsschwerpunkt soll ja eindeutig auf größtmöglicher Flexibilität bei gleichzeitig möglichst niedrigem Pflege- und Administrationsaufwand liegen.

Gruß Gunther