Hallo PHP-Forum,
ich bin etwas ratlos. Ich arbeite mit jemandem an einem PHP-Projekt, das wahrscheinlich recht groß werden wird. Wir benutzen daher kein Framework und schreiben uns unsere eigene Architektur, die wir flexibel und genau auf unsere Bedürfnisse anpassen können.
Unser Problem: Wir sind bei der Verzeichnisstruktur und der grundsätzlichen Organisation der Dateien verschiedener Meinung. Er will es so wie viele Frameworks machen, d.h. schön einen Ordner für Templates, wo einfach alle Templates reingeschmissen werden, einen Ordner "classes", einen Ordner für Sprachdateien, einen für Formulare usw. Sein Argument ist: "Alle machen das so. Und so ist es schön strukturiert und man weiß, was wo hin gehört."
Was mich daran stört, ist, dass sich die Dateien dann über die gesamte Verzeichnisstruktur verstreuen. Ich will, dass die Dateien immer dort liegen, wo sie zusammen ein Modul oder eine Seite bilden. Z.B. habe ich in "pages" einen Ordner "index" für die Startseite und lege dort alles ab, was dazu gehört. Spezial-Klassen, die nur für die Startseite benötigt werden, Templates, Sprachdateien, am besten auch die Stylesheets. Unter "registration" lege ich alles ab, was zur Benutzer-Registrierung gehört, usw. Alles was an anderer Stelle wiederverwendet wird und nicht so spezifisch ist, wird natürlich woanders gespeichert.
Das Projekt wird sehr komplex werden, mit vielen Modulen und Komponenten. Ich denke mir halt, wenn später ein paar mehr Programmierer daran arbeiten, werden sie dankbar sein, wenn man ihnen einfach einen Ordner für ihr Modul gibt, wo sie arbeiten sollen. Sie brauchen es dann nicht an verschiedenen Orten innerhalb der Verzeichnisstruktur zusammenbasteln. Das erhöht die logische Kohäsion.
Jetzt also meine Fragen an euch: Wie seht ihr das? Warum ist es sinnvoll, z.B. alle Templates systemweit an einem Ort zu sammeln? Wie wird das im professionellen Umfeld gehandhabt? Warum sammelt z.B. CodeIgniter die Controller, Models und Views alle zentral?
Ich meine, dass es da langfristig sehr unübersichtlich werden kann. Sein Gegenargument: "Ja, da kann man ja Unterordner machen." Aber das löst meiner Meinung nach nicht das Grundproblem, dass wenn ich an einem Modul arbeite, ich nicht weiß, wo sonst noch was davon im Dateisystem herumliegt.
Ich bin dankbar für jede Antwort.
ich bin etwas ratlos. Ich arbeite mit jemandem an einem PHP-Projekt, das wahrscheinlich recht groß werden wird. Wir benutzen daher kein Framework und schreiben uns unsere eigene Architektur, die wir flexibel und genau auf unsere Bedürfnisse anpassen können.
Unser Problem: Wir sind bei der Verzeichnisstruktur und der grundsätzlichen Organisation der Dateien verschiedener Meinung. Er will es so wie viele Frameworks machen, d.h. schön einen Ordner für Templates, wo einfach alle Templates reingeschmissen werden, einen Ordner "classes", einen Ordner für Sprachdateien, einen für Formulare usw. Sein Argument ist: "Alle machen das so. Und so ist es schön strukturiert und man weiß, was wo hin gehört."
Was mich daran stört, ist, dass sich die Dateien dann über die gesamte Verzeichnisstruktur verstreuen. Ich will, dass die Dateien immer dort liegen, wo sie zusammen ein Modul oder eine Seite bilden. Z.B. habe ich in "pages" einen Ordner "index" für die Startseite und lege dort alles ab, was dazu gehört. Spezial-Klassen, die nur für die Startseite benötigt werden, Templates, Sprachdateien, am besten auch die Stylesheets. Unter "registration" lege ich alles ab, was zur Benutzer-Registrierung gehört, usw. Alles was an anderer Stelle wiederverwendet wird und nicht so spezifisch ist, wird natürlich woanders gespeichert.
Das Projekt wird sehr komplex werden, mit vielen Modulen und Komponenten. Ich denke mir halt, wenn später ein paar mehr Programmierer daran arbeiten, werden sie dankbar sein, wenn man ihnen einfach einen Ordner für ihr Modul gibt, wo sie arbeiten sollen. Sie brauchen es dann nicht an verschiedenen Orten innerhalb der Verzeichnisstruktur zusammenbasteln. Das erhöht die logische Kohäsion.
Jetzt also meine Fragen an euch: Wie seht ihr das? Warum ist es sinnvoll, z.B. alle Templates systemweit an einem Ort zu sammeln? Wie wird das im professionellen Umfeld gehandhabt? Warum sammelt z.B. CodeIgniter die Controller, Models und Views alle zentral?
Ich meine, dass es da langfristig sehr unübersichtlich werden kann. Sein Gegenargument: "Ja, da kann man ja Unterordner machen." Aber das löst meiner Meinung nach nicht das Grundproblem, dass wenn ich an einem Modul arbeite, ich nicht weiß, wo sonst noch was davon im Dateisystem herumliegt.
Ich bin dankbar für jede Antwort.
Kommentar