Großes Projekt - Ordnerstruktur sinnvoll gliedern

Kalma

Erfahrenes Mitglied
Hi,

wow, mein erster Beitrag in dem "neuen Forum"!
Dickes Kompliment!

Aber nun zu meinem Problem ;)

Ich habe ein relativ umfangreiches Projekt mit einem Freund, in dem wir verschiedene Bereiche haben, zum Beispiel:

- News
- Profil
---- "Pinnwand"
---- Infos
---- Bands
---- Freunde
- Bands
---- Mitglieder
---- Kalender
---- Biografie
- Einstellungen
---- Passwort ändern
---- Email Benachrichtigungen
- Rechtliches
---- Kontakt
---- Impressum
---- Disclaimer
---- AGB
---- FAQ

und so weiter...
Bisher habe ich folgende Ordner-Struktur

- root
-- include
----- classes, function, etc
-- templates
-- alle php-dateien


Da es sehr unübersichtlich wird, wenn ich jetzt alle PHP-Dateien in den root-Ordner packe, wird es auf die Dauer sehr unübersichtlich (das stelle ich schon jetzt mit 25 Dateien fest...). Als Hilfe hab ich vor alles einen Prefix gemacht, z.B.: "profil_information.php"

Das nervt mich aber doch ziemlich und es sieht auch irgendwo unschick aus ;)

Also dachte ich mir ich mache für die wichtigen Bereiche, die kompliziert sind und mit viel Unterdateien einen Ordner, so zum Beispiel:

- root
-- bands
---- index.php
---- members.php
---- calendar.php
-- profile
---- info.php
---- friends.php
---- wall.php

und so weiter.
Doch jetzt habe ich 2 Probleme:

-1- Wie kriege ich die Dateien aufgerufen? Sollte ich im root-Ordner eine Datei machen, die über die URL aufgerufen wird und per Parameter die entsprechende Datei aus dem Ordner liest? Oder doch htaccess?

-2- Ich habe eine globale Konfigurationsdatei, in der Ordner-Pfade festgelegt sind.
Wenn ich diese in zum Beispiel bands/info.php einbinde, stimmen diese Pfade ja nicht mehr.


Könnt ihr mir Tips geben, wie ich dieses Problem am Besten lösen könnte?
Das Projekt wird sicher nicht mit 50 Dateien auskommen wenn es einmal fertig gestellt ist und es soll ständig erweitert werden, ohne viel Fusch.



Vielen Dank fürs Lesen und helfen!
David
 
-1- Wenn du Dateien direkt einbindest kannst du z.B.: einfach include('./bands/index.php'); einbinden

-2- Hier ist es eine Möglichkeit in jeder Datei den Pfad zu root Verzeichnis zu hinterlegen.

Datei bands/index.php
PHP:
$RELPATH = '../';
include('include_all.php');

Datei include_all.php
PHP:
include($RELPATH.'profil/info.php');
...
 
Danke für die schnelle Antwort.

Das ist schon ein guter ansatz, allerdings habe ich ja folgendes Problem:


config.php:
PHP:
define('FUNCTION_DIR', 'include/function');
define('CLASS_DIR', 'include/class');

liegt in
/include/config.php


wenn ich jetzt in der "bands/index.php" folgendes mache:
$RELPATH = '../';
include($RELPATH.'/include/config.php');

Dann stimmen aber doch die Pfade der Konstanten nicht mehr, oder irre ich mich?!


Gruß
David
 
Das Problem ist immer, dass der Ausgabgspfad derjenige der Datei ist, die du aufgerufen hast.

PHP:
//index.php
include('dir1/file1.php');
Wenn in file1.php wieder ein include steht, geht der vom Pfad index.php aus.
PHP:
//file1.php
include('file2.php'); //sucht file2.php im Ordner wo index.php steht, nicht aber im Ordner dir1/

Darum setze ich meistens die absouten Pfade. Dann ists egal woher das ganze aufgerufen wurde. Die absoluten Pfade kann man einfach mit dirname(__FILE__) auslesen
PHP:
//file1.php
include(dirname(__FILE__).'/file2.php'); //sucht file2.php im selben Ordner wo auch file1.php ist
Das macht das ganze nicht gerade einfacher.
 
definiere halt die konstanten auch über RELPATH

PHP:
define('FUNCTION_DIR', $RELPATH.'include/function');

Oder hab ich jetzt das Problem falsch verstanden?
 
Wenn ich somit aus jedem (in meiner oben geposteten Ordnerstruktur) Ordner her in das richtige Verzeichnis komme, nein!

Dann würde ich mich herzlich bedanken!


// edit:
Jetzt würde ich aber gerne noch eure Meinung einmal wissen:
- Seit ihr der Meinung es macht das ganze übersichtlicher, wenn jeder (größere) Bereich seinen eigenen Ornder bekommt?

- Wie würdet ihr das ganze aufrufen lassen?
In der Url sollte möglichst wenig stehen, also am Besten wäre so:
http://www.adresse.de/bands.html?v=info

Sollte ich dann einfach in einer bands.html die im Stammordner liegt eine switch-case Abfrage machen die die jeweiligen Bereiche einbindet?
 
Zuletzt bearbeitet:
Nein hatte ich nicht:
- Übersichtlichkeit: Auf jeden Fall machen. Wenn du das erste mal 100 Dateien hast weißt du warum.
- Aufruf: Wenn du ein Frameset/Iframes verwendest sieht eh keiner was genau geladen wird.
 

Neue Beiträge

Zurück