Hallo Andreas,
jepp ;-)
schon komisch, dass wir beide den selben Thread verlinken...
Um beim Beispiel Bilder-Upload zu bleiben, welche Klassen brauche ich alle hierfür?
Die Basisklasse, die Backendklassen und die Klasse für den Bilderupload, die von der Basisklasse abgeleitet ist.
Ist die Ausgabe-Klasse (smarty) hier hier ein Backend-Modul?
Ja. Frontend ist *nur* das, das *direkt* auf Benutzereingaben reagiert und "Ablaufslogik" enthält. (ich hoffe, Du verstehst, was ich meine)
Ich habe eine Startseite, auf der ist ein Link zum Upload-Formular.
Dieser link geht wohin? Vermutlich auf das Upload-Script, oder? OK.
Nicht ganz. Dieser Link geht zum Standardscript, das in diesem Fall (per URL-Parameter gesteuert) die Upload-Frontend-Klasse verwendet.
In dem Upload-Script wird dann meinetwegen ein Basis-Modul geladen, wo ich auch noch nicht genau weiß was es genau machen soll, auf alle Fälle hat es erstmal globale Daten wie den Standard-Pfad und die Standard-url.
s.o.
Die Uplaod-Klasse wird erstmal nicht geladen, da ich die ja erst später brauche.
Nein, die Upload-Frontend-Klasse brauchst Du jetzt immer, nur eine eventuelle existierende Backend-Klasse existiert noch nicht. Du kannst Dir unter "Frontend" ein Modul vorstellen, Du musst nicht unbedingt eine Klasse verwenden, eine Datei, die included wird oder eine Funktion könnte die aufgabe auch bewältigen.
Dann wird die Smarty-Klasse geladen, und mir deren Hilfe das HTML-Forumlar generiert und ausgegeben.
Exakt.
Jetzt hat der User im Browser dieses Formular.
Er wählt eine Datei aus und klickt auf "submit".
Der POST-Request geht wieder an das Upload-Script.
Genau.
Es wird wieder das Upload-Script geladen,
dieses läd das Basis-Modul,
Jain, es wird wieder das Standardscript geladen, das das Upload-Frontend startet.
und wer nimmt jetzt die Daten entgegen? Soll ich das in das upload-Script reincoden?
Das Upload-Frontend sollte sie enthalten.
Wo wird diese Klasse genau geladen?
Du meinst "included"? Vor der Verwendung, entweder werden alle Dateien mit allen Frontend-Klassen eingelesen, oder nur kondizional je nach Anfrage.
Wo wird eine Instanz erstellt?
An der Stelle, wo klar ist, dass das Upload-Frontend verwendet werden soll.
Wie kommen die Daten in die Klasse?
Superglobale, also $_GET, $_POST, $_FILE?
Holt sich die Klasse die Daten selbst aus den Umgebungsvariablen?
Ja.
Nur woher kennt die Klasse die beim POST Request verwendeten Parameter-Namen?
Sie hat sie selbst definiert.
Woher weiß die Klasse das eine Datei mitgeschickt wird?
Status-Flags, PHP-File-Upload-Handling funktionen...
Aber auch mit der Basisklasse bin ich noch nicht so ganz warm. Was soll die Klasse denn genau machen außer ein paar feste Daten wie root_path und root_url zur Verfügung zu stellen?
Im Prinzip gar nichts... :-)
So wie sich das bei Euch immer anhört regelt die Basis-Klasse so ziemlich alles, alles läuft hierüber
Hä?
Grüße,
Christian
P.S.: Alles, was ich hier schreibe, ist mit meiner Einstellung behaftet, wie ich es realisieren würde. Aber Du darfst nie aus den Augen verlieren: Es gibt tausende Möglichkeiten, das zu realisieren.
Ich bitte darum, dass ein Themenbereich (BARRIEREFREIHEIT) eingerichtet wird.