Hallo!
Ganz am Anfang: Vielleicht findest Du unter </archiv/2002/12/31778/> auch ein paar interessante Anregungen.
jepp ;-)
Hmmm. Ich an Deiner Stelle würde Backend und Frontend sauber trennen. Du hast dann ein paar Klassen, die die Backgroundarbeit erledigen (fileUpload, thumbnail, etc.) und ein paar Klassen, die sich um die Benutzerinteraktion kümmern und die Backendklassen verwenden.
Ich für mich komme jetzt denke ich mit Backend-Klassen recht gut zurecht. Mir fehlt jetzt noch ein Basismodul/-klasse und Frontend-Klassen. Da fehlt mir zur Zeit noch eine Vorstellung für, wie ich das jetzt z.B. in PHP machen soll. Was macht so eine Frontend-Klasse genau und wie/wo wird die instanziert?
Um beim Beispiel Bilder-Upload zu bleiben, welche Klassen brauche ich alle hierfür? Ist die Ausgabe-Klasse (smarty) hier hier ein Backend-Modul?
Also von vorne:
Ich habe eine Startseite, auf der ist ein Link zum Upload-Formular.
Dieser link geht wohin? Vermutlich auf das Upload-Script, oder? OK.
Dann wird das Upload-Script geladen.
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.
Die Uplaod-Klasse wird erstmal nicht geladen, da ich die ja erst später brauche.
Dann wird die Smarty-Klasse geladen, und mir deren Hilfe das HTML-Forumlar generiert und ausgegeben.
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.
Und hier weiß ich jetzt nicht mehr weiter. < < <
Es wird wieder das Upload-Script geladen,
dieses läd das Basis-Modul,
und wer nimmt jetzt die Daten entgegen? Soll ich das in das upload-Script reincoden? Vermutlich kommt hier eine von Dir genannte Frontend-Klasse ins Spiel, aber wie genau funktioniert das?
Wo wird diese Klasse genau geladen?
Wo wird eine Instanz erstellt?
Wie kommen die Daten in die Klasse?
Holt sich die Klasse die Daten selbst aus den Umgebungsvariablen?
Nur woher kennt die Klasse die beim POST Request verwendeten Parameter-Namen?
Woher weiß die Klasse das eine Datei mitgeschickt wird?
Woher weiß die Klasse an welches Modul die Daten übergeben werden müssen?
;-)
Viele Fragen, aber noch habe ich da beachtliche Verständnis-Probleme ;-)
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?
So wie sich das bei Euch immer anhört regelt die Basis-Klasse so ziemlich alles, alles läuft hierüber - nur wie sieht das praktisch aus? OK, ich könnte innerhab dir Klasse die benötigten Module einbinden, aber woher weiß ich welche Module benötigt werden?
Das ist gut so. Ein gutes Konzept ist immer sehr wichtig, warscheinlich das Essenziellste einer guten Software. (neben der Dokumentation)
Ja, bei mir verschiebt sich das Verhältnis von Programmieren => Konzeption vor allem zur Zeit da ich nicht mit einem falschen Konzept anfangen will ganz erheblich. Ich bin noch ein ganzes Stück davon entfernt "das sich der Kreis schließt" ;-)
Viele Grüße
Andreas