php.de

Zurück   php.de > Webentwicklung > Software-Design

Software-Design Diskussionen auf Profi-Niveau: PHP Lösungen auf konzeptioneller Ebene

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 1 Stimmen, 5,00 durchschnittlich.
Alt 23.02.2011, 22:53  
Neuer Benutzer
 
Registriert seit: 23.02.2011
Beiträge: 2
PHP-Kenntnisse:
Fortgeschritten
Bleppo befindet sich auf einem aufstrebenden Ast
Standard Verzeichnisstruktur und Dateiorganisation

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.
Bleppo ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 23.02.2011, 23:01  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.994
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
am besten auch die Stylesheets
Da hakt die Idee das erste mal. In diesem Fall bekommst Du sehr komplexe Verzeichnisse für die public Ressourcen, die Du dann immer an die zuständigen Templates durchreichen musst, möglicherweise sogar noch relativ zu einem Stammpfad auflösen usw. Und stelle Dir erstmal die Verknüpfung der Ressourcen untereinander vor. Z.B. ein Stylesheet, das ein Bild über background-url einbindet.
Zudem hast Du dann die Situation dass die gesamten anderen Teile bis zur Tiefe dieser Ressourcen zwingend im DocRoot liegen müssen (und damit tendenziell öffentlich aufrufbar sind (z.B. über cUrl) ODER du alle Ressourcen durch PHP-Scripte schleifen musst. Ich verstehe Deine Intention (gerade für Applikationen mit variablen Modulen ist das praktisch bei deren Installation), die Pflege der einzelnen Komponenten wird durch solche Verzeichnisstrukturen allerdings ziemlich aufwendig.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 23.02.2011, 23:48  
Neuer Benutzer
 
Registriert seit: 23.02.2011
Beiträge: 2
PHP-Kenntnisse:
Fortgeschritten
Bleppo befindet sich auf einem aufstrebenden Ast
Standard

Ja. Das mit den Stylesheets stimmt. Habe ich auch schon überlegt, dass hier ein Public-Ordner besser wäre, in dem sowas gesammelt wird. Die Bilder, Javascripte, CSS-Dateien, usw. In diesem Fall bin ich mit der Streuung einverstanden. Aber was ist mit dem Rest? Die ganze PHP-Infrastruktur? Wie zentralisiert man die sinnvoll?
Bleppo ist offline   Mit Zitat antworten
Alt 24.02.2011, 00:21  
fab
Erfahrener Benutzer
 
Benutzerbild von fab
 
Registriert seit: 28.07.2010
Beiträge: 2.308
PHP-Kenntnisse:
Fortgeschritten
fab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblick
Standard

Bei einem großen modular aufgebauten Projekt ist es schon sinnvoll, für jedes Modul ein eigenes Oberverzeichnis anzulegen und ja, das wird in der Regel auch von Frameworks unterstützt (siehe z.B. http://framework.zend.com/manual/1.1...e.project.html, auch als Anregung für dich)

Zu den Argumenten deines Kollegen
Zitat:
"Alle machen das so. Und so ist es schön strukturiert und man weiß, was wo hin gehört."
Das machen ganz sicher nicht alle so und ich glaube auch nicht dass ihr euch so etwas wie Wordpress zum Vorbild nehmen wollt. "Schön strukturiert" scheint Ansichtssache zu sein, meiner Meinung nach wäre das eher ein Punkt für deinen Ansatz. Und was hat man davon, ohne nachzudenken zu wissen, wo etwas hinkommt, es dann aber nicht wiederzufinden wenn man es braucht? Letzteres sollte Priorität haben, also steckt man doch besser zusammen, was logisch zusammengehört.

Wenn du die Verzeichnisse als Packages siehst, kannst du auch mit den OOP Prinzipien zur Package-Kohäsion argumentieren (insbesondere dem Common Reuse Principle) und sie als weitere Richtlinie verwenden.
fab ist offline   Mit Zitat antworten
Alt 24.02.2011, 14:38  
Erfahrener Benutzer
 
Registriert seit: 30.07.2008
Beiträge: 1.169
PHP-Kenntnisse:
Fortgeschritten
xm22 sorgt für eine eindrucksvolle Atmosphärexm22 sorgt für eine eindrucksvolle Atmosphärexm22 sorgt für eine eindrucksvolle Atmosphäre
Standard

Es gibt im Prinzip 2 verschiedene Ansätze:
1. Alle zu einem "Modul" gehörende Dateien bündeln (CSS, Bilder, etc. mal außen vor)
2. Alle zu einer Applikationsschicht gehörenden Dateien bündeln

Bei 1. hat man den Vorteil, dass man komplette "Pakete" hat, was die Modifizierung und Austauschbarkeit in der Praxis doch enorm erhöht.
Bei 2. hat man dafür eine einfachere Möglichkeit des "Themings"
Beide Ansätze sind verbreitet, 2. allerdings wesentlich mehr. Was man nun anwenden möchte, muss man für sich entscheiden.
Eine Sache ist allerdings immer empfehlenswert: Bilder, css, etc. in ein Verzeichnis, dass innerhalb des Document-Root liegt, die eigentliche Applikation hingegen außerhalb des Document-Root.
xm22 ist offline   Mit Zitat antworten
Alt 24.02.2011, 15:18  
Erfahrener Benutzer
 
Registriert seit: 28.09.2008
Beiträge: 1.168
PHP-Kenntnisse:
Fortgeschritten
Koala befindet sich auf einem aufstrebenden Ast
Standard

beide Ansätze sind nebeneinander denkbar:

- alle Dateien schön sortiert in die jeweiligen Verzeichnisse (templates, css, js usw.).

- Module kommen in das Verzeichnis "module" mit allen zugehörigen Dateien in einer
Verzeichnisstruktur welcher der des Stammverzeichnis entspricht.
Eine install.php kopiert die Dateien dann entsprechend der Struktur.

Sieht dann also so aus:

module:

module/modul1:

- install.xml

- install.php

- root/css/modul1.css
- root/js/modul1.js
- root/templates/modul1.tpl

Wird bei phpbb so gemacht und find ich recht praktisch

Es ist jederzeit nachvollziehbar wo die Dateien hinkopiert wurden
und wo sie herkommen.
__________________
Eine if-else-Abfrage nimmt, ordentlich geschrieben eine Menge Platz weg. Platzsparend geht es mit einem ternären Operator.
Koala ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Zugriff auf geschützte Verzeichnisstruktur MerlinderZauberer Server, Hosting und Workstations 2 08.05.2006 20:18
verzeichnisstruktur im browser wenn keine seite gewählt Crypi Server, Hosting und Workstations 3 02.01.2006 16:44
PHP Verzeichnisstruktur und Dateien auslesen Chr!s PHP Tipps 2005 2 05.03.2005 14:37
Verzeichnisstruktur schützen Server, Hosting und Workstations 2 02.03.2005 10:43
verzeichnisstruktur PHP Tipps 2005 8 26.01.2005 12:13
Verzeichnisstruktur PHP Tipps 2004 1 12.10.2004 03:42
Sinnvolle Verzeichnisstruktur?! PHP Tipps 2004 2 28.08.2004 17:28
verzeichnisstruktur auslesen PHP Tipps 2004 8 04.08.2004 17:18
Verzeichnisstruktur bei Templates PHP-Fortgeschrittene 1 29.07.2004 14:36

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
organisation dateiablage, dateiablage organisieren, dateiablage struktur, struktur dateiablage, struktur ordner, dateiorganisation, sinnvolle verzeichnisstruktur, php dateiorganisation, php projekt verzeichnis struktur, struktur dateiablage betrieb, •organisation dateiablage, dateiablage organisation, php projekt ordnerstruktur, dateiablage strultur, ordnerstruktur php projekt, sinnvolle datei ordner struktur, projektordnerstruktur aufbauen, php projekt ordner struktur, dateien ordner strukturieren, verzeichnisstruktur organisation

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:33 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum