Tach!
In PHP gibt es ja mittlerweile auch namespaces [...].
Nehmen wir mal folgende Verzeichnis-Struktur an.
Beides hat nichts miteinander zu tun. Man bildet jedoch gern eine Namespace-Struktur auf einer Verzeichnissstruktur ab, damit man eine logische Ordung auch physisch vorliegen hat. Das hilft, sich in diesem komplexen Gebilde zurechtzufinden.
Projekt
|-> Module
|-> foo
|-> constants
|-> constants.php
|-> foo.php
|-> bar
|-> constants
|-> constants.php
|-> bar.php
|-> autoload.php
|-> index.phpIst es richtig, dass foo.php im namespace foo landet, bar.php in bar und index.php in Projekt? Oder sollten foo und bar im namespace "Module" sein"?
Unter der Voraussetzung, dass jeder Namespace-Teil einem Verzeichnisnamen entspricht, würden sich Elemente in foo.php sich im Namespace \Projekt\Module\foo befinden, Elemente in bar.php sind in \Projekt\Module\bar und Dinge in index.php unter \Projekt. Aber - und dass wäre die Antwort auf die zweite Frage - du kannst dir das selbst so einrichten, wie du das gern hättest.
Und wenn index.php im namespace "Projekt" ist, wie erkläre ich meinem autoloader denn wo er z.B. foo findet? Und wenn ich von foo aus eine Instanz von bar erstellen will?
Das ist dein Problem. Namespaces in einer Verzeichnisstruktur nachzubilden, hilft jedenfalls beim Finden von Dateien, wenn man das 1:1 übersetzen kann. Ansonsten braucht es da einen anderen Zuordnungsmechanismus.
dedlfix.