Guten Morgen!
Ich habe leider immer öfter das Problem, dass ich nicht weiß, wie ich größere Projekte Strukturieren soll. Daher wende ich mich nun hoffnungsvoll an euch.
Eine meiner Meinung nach sinnvolle Struktur habe ich mal in dieser PDF-Datei aufgezeigt.
Nun habe ich allerdings das Problem, dass ich nicht weiß, wie ich die einzelnen Module sinnvoll aufbauen soll. Eins ist sicher jedes Modul, ich nehme jetzt mal als Beispiel ein News-Modul, soll sein eigenes Template sowohl für das Backend, als auch für das Frontend besitzen. Die einzelnen Aktionen, die innerhalb eines Moduls verfügbar seien sollen, sollen ausgelagert und am besten auch getrennt werden. Doch, wie lagere ich die Aktionen am geschicktesten in eine oder mehrere Dateien aus und wie führe ich letzt endlich alles am geschicktesten zusammen? Und wie mache ich am geschicktesten Objekte, wie eine Datenbank-Verbindung oder geladenene Konfigurationen global verfügbar?
Viele Fragen und gleich das nächste Problem? Wie kann ich mir Ausgaben erleichtern? Gibt es da einfach Muster, wie zum Beispiel bei einer Pager-Klasse, die eine Blätterfunktion ersetzt? Die Ausgabe von Daten in sortierbaren Tabellen ist sehr schick und für den User absolut angenehm, aber, wenn man sie jedesmal in das Layout einpassen muss, doch sehr ermüdent und zeitaufwendig. Lohnen sich hier Klassen, die bei solchen Aufgaben helfen und welche lassen könnten das neben einer Pager-Klasse noch sein?
Und gleich die nächste Frage. Natürlich ist es nicht schön, wenn man einmal etwas gecodet hat und es beim nächsten mal wieder schreiben muss, da man nicht alles wiederverwenden kann. Daher möchte ich gerne ein Grundsystem schreiben, dass eigentlich nicht mehr erlaubt als Benutzer, Einstellungen und Packages (Module) zu verwalten. Wie könnte so eine Verwaltung aussehen? Ich weiß es leider nicht. Ist es sinnvoll auf einfache Tarballs zurück zu greifen und sollte ich diese lieber einfach auf dem komplizierten Weg über die file()-Funktionen entpacken oder sollte ich die Gefahr auf mich nehmen, dass auf dem einen oder anderen Webspace exec() und system() verboten bzw. gesperrt sind? Wie könnte die Package-erwaltung weiter aussehen? Sollte eine Klasse die Installation eines Packages übernehmen? Das könnte zum Beispiel dann ja einfach so aussehen, dass diese Klasse einen Tarball einfach in ein temporäres Verzeichnis entpackt und dort eine install.php aufruft, die alle wichtigen Dateien verschiebt, Datenbanken erstellt und erste Einträge vornimmt. Ein Problem wäre dann die Deinstallation dieses Paketes. Eine weitere die Verknüpfung zwischen Paketen. Wie kann man überprüfen, ob ein Paket überhaupt gelöscht werden darf ohne andere zu beeinflussen? Sollten installierte Pakete in einer Datenbank erfasst werden?
Wie schon gesagt - sehr sehr viele Fragen, aber ich hoffe ihr könnte mir etwas weiter helfen.
MfG, Andy
Ich habe leider immer öfter das Problem, dass ich nicht weiß, wie ich größere Projekte Strukturieren soll. Daher wende ich mich nun hoffnungsvoll an euch.
Eine meiner Meinung nach sinnvolle Struktur habe ich mal in dieser PDF-Datei aufgezeigt.
Nun habe ich allerdings das Problem, dass ich nicht weiß, wie ich die einzelnen Module sinnvoll aufbauen soll. Eins ist sicher jedes Modul, ich nehme jetzt mal als Beispiel ein News-Modul, soll sein eigenes Template sowohl für das Backend, als auch für das Frontend besitzen. Die einzelnen Aktionen, die innerhalb eines Moduls verfügbar seien sollen, sollen ausgelagert und am besten auch getrennt werden. Doch, wie lagere ich die Aktionen am geschicktesten in eine oder mehrere Dateien aus und wie führe ich letzt endlich alles am geschicktesten zusammen? Und wie mache ich am geschicktesten Objekte, wie eine Datenbank-Verbindung oder geladenene Konfigurationen global verfügbar?
Viele Fragen und gleich das nächste Problem? Wie kann ich mir Ausgaben erleichtern? Gibt es da einfach Muster, wie zum Beispiel bei einer Pager-Klasse, die eine Blätterfunktion ersetzt? Die Ausgabe von Daten in sortierbaren Tabellen ist sehr schick und für den User absolut angenehm, aber, wenn man sie jedesmal in das Layout einpassen muss, doch sehr ermüdent und zeitaufwendig. Lohnen sich hier Klassen, die bei solchen Aufgaben helfen und welche lassen könnten das neben einer Pager-Klasse noch sein?
Und gleich die nächste Frage. Natürlich ist es nicht schön, wenn man einmal etwas gecodet hat und es beim nächsten mal wieder schreiben muss, da man nicht alles wiederverwenden kann. Daher möchte ich gerne ein Grundsystem schreiben, dass eigentlich nicht mehr erlaubt als Benutzer, Einstellungen und Packages (Module) zu verwalten. Wie könnte so eine Verwaltung aussehen? Ich weiß es leider nicht. Ist es sinnvoll auf einfache Tarballs zurück zu greifen und sollte ich diese lieber einfach auf dem komplizierten Weg über die file()-Funktionen entpacken oder sollte ich die Gefahr auf mich nehmen, dass auf dem einen oder anderen Webspace exec() und system() verboten bzw. gesperrt sind? Wie könnte die Package-erwaltung weiter aussehen? Sollte eine Klasse die Installation eines Packages übernehmen? Das könnte zum Beispiel dann ja einfach so aussehen, dass diese Klasse einen Tarball einfach in ein temporäres Verzeichnis entpackt und dort eine install.php aufruft, die alle wichtigen Dateien verschiebt, Datenbanken erstellt und erste Einträge vornimmt. Ein Problem wäre dann die Deinstallation dieses Paketes. Eine weitere die Verknüpfung zwischen Paketen. Wie kann man überprüfen, ob ein Paket überhaupt gelöscht werden darf ohne andere zu beeinflussen? Sollten installierte Pakete in einer Datenbank erfasst werden?
Wie schon gesagt - sehr sehr viele Fragen, aber ich hoffe ihr könnte mir etwas weiter helfen.
MfG, Andy
Kommentar