hotti: OOP (in PHP) - 3 Fragen

Beitrag lesen

Moin,

Genauer: Es gibt noch eine Funktion, die Du mit 'load' meinst (vermute ich). Nenne die nicht load, sondern erzeuge_body, getbody, bodygen, bodybuild oder so ähnlich. Weil: Der Contoler (sub login{}) ruft letztendlich wieder die Methode template{} auf, wenn keine Fehler oder nur kleine Fehler aufgetreten sind (Benutzername falsch oder so...). Ein fataler Fehler wäre ein unerlaubter Parameter, da sollte nicht das Formular gezeigt werden, sondern eine richtig gute Fehlerseite. Die Methode bodybuild wird als Letzte in der Verarbeitungskette aufgerufen, die guckt in den Fehlerspeicher (ein Attribut des Response-Objects) und tauscht bei fatalen Fehlern den Body aus. Ansonsten kommmt das Template, woher auch immer (Datei, DB...).

Verstehe ich so. Aber mit "load" meinte ich eigentlich soviel wie "Lade die Daten, die du für die Seite brauchst (Seitenname, Inhalt, etc.) in den RAM".

Jes. In der Praxis wird es mehrere Methoden/Funktionen geben, die daran beteiligt sind. Ein Controler übernimmt die Kontrolle der Berechtigungen und prüft, ob eine Anmeldung vorliegt. Die Kontrolle, ob der Req.URL in der Verwaltung geführt wird, muss auch irgendwo gemacht werden und dann ist auch noch zu prüfen, ob der Request Parameter enthalten darf.

Diese Controler sind nicht an irgendeinen URL gebunden, die werden bei  jedem Request aufgerufen.

Der Controler gem. MVC-Patterns übernimmt bei mir nur die Parameterkontrolle, die Parameter wiederum sind an einen URL gebunden. URLs, die Parameter im Request haben dürfen, haben also jeweils eine eigene Control-Methode (der Name steht in der Konfiguration/Verwaltung).

Singleton: Tja, alles in einer Klasse, es braucht tatsächlich nur eine Instanz (das Resonse-Object, RO). Das RO hat u.a. auch den Stash als Attribut, das ist die Eigenschaft, in der die Werte fürs Template liegen, Scalare, Hashes, Arrays... reine Daten, Ergebnismengen aus DB-Abfragen, völlig getrennt von der Darstellung.

RO (mit Stash) ruft dann eine Methode der Template-Engine, erst hier werden die Daten aus dem Datenversteck ins Markup geschossen und fertisch ist der Lack ;)

Hotti (zurück zur Glotze, gucke Papstbesuch im Eichsfeld, meine alte Heimat)