Take: OOP (in PHP) - 3 Fragen

Beitrag lesen

Moin,

Das war glaub ich ein bisschen unglücklich ausgedrückt. Was ich meinte war: Die Klasse "page" versucht die angeforderte Seite zu laden (Überprüft ob die Datei existiert). Was tut sie, wenn die Datei nicht existiert? Automatisch die 404-Seite laden? Oder einfach nur false zurückgeben und irgendwo anders (wo?) wird dann ermittelt, dass die 404-Seite im Falle einer nicht gefundenen Seite geladen werden muss und der Klasse gesagt, sie solle jetzt die 404-Seite laden.

Ganze einfach in der Webserverkonfig:

ErrorDocument 404 => ResponseHandler (index.php)
Alle Requestse    => ResponseHandler (index.php)

Der Trick, damit Beides funktioniert: Der ResponseHandler (index.php) steht NICHT in der Verwaltung.

Äh, was? Ich habe eine index.php Bei einem Request wird erstmal die Seite per GET-Parameter übergeben: index.php?page=index oder index.php?page=test/index Und wie soll da der Webserver einen 404 schmeißen, wenns die Datei test/index nicht gibt?

Was meinst du mit "Verwaltung"?

Das ist die Konfiguration, siehe weiter oben: Eine Tabelle mit ALLEN URLs, welche Deine Website beinhaltet.

Wozu brauch ich denn die? Nehmen wir an, ich arbeite ganz stumpf mit Flatfiles, dann prüfe ich einfach per file_exists(), ob eine Datei (=Seite) existiert.

Das mit den Templates hab ich mir auch schon so vorgestellt, wie du es beschreibst. Aber ist "submit" hier nicht der falsche Begriff? Ich würd es eher als Request bezeichnen, wobei Ajax ja auch ein Request ist... Aber müsste dieses Überprüfen ob Ajax oder "normaler" Request, nicht eher Teil einer Extra-Klasse "template" sein, die das laden und bestücken der Templates übernimmt?

Es muss dafür gesorgt sein, dass der Controler unterscheiden kann, ob ein Submit oder ein Ajaxrequest vorliegt. Das kann über einen speziellen Header erfolgen oder anhand eines Parameters.

Ist mir klar. Aber _wer_ unterscheidet das? Der Controler oder eine Extra-Klasse?

Insgesamt, merke ich jetzt, ist das Thema echt komplex. Man könnte jetzt seine alten nicht-OOP-Scripte einfach so hinbiegen, aber dann hat man das OOP ja nur um des OOP Willen und nutzt die Vorteile gar nicht

Siehs mal so: Deine Verwaltung, die Konfiguration ist eine Sammlung von Objekten. Das ist die Grundlage dafür, OOP zur dynamischen Erstellung von Webcontent nutzen zu können.

Das heißt, ich speichere für jede Seite, jedes Template, etc. einfach eine Serialisierte Form des Objektes (wohin ist erstmal egal)? Ich hatte mir das eher so vorgstellt, das die "page" Klasse eine Methode "load" hat, die dann eine bestimmte Seite lädt, sodass dieses Objekt jetzt diese Seite wiederspiegelt.

Gruß,
Take