dedlfix: Klassen Konstanten zu laufzeit definieren?

Beitrag lesen

Tach!

Beispiel: class Admin_Explorer ist die Datei Explorer.php im Verzeichnis Admin das sich direkt unterhalb des [include] Verzeichnisses befindet.

schönes Muster wäre auch mein Ziel gewesen aber wofür gibts Autoload wenn man es nicht nutzt. Du meinst doch das inkludieren über eine Schleife ohne Autoload oder?

Der Autoloader befreit dich nur davon, in jeder Datei eine Latte von require/include-Statements anführen zu müssen. Du brauchst ihn in jedem Fall, wenn du das vermeiden möchtest. Wie der Autoloader dann die physischen Dateien zu den Klassennamen findet, steht auf einem anderen Blatt. Üblich ist die Vorgehensweise, dass der Dateiname inklusive Pfad aus dem Klassennamen und gegebenenfalls Namespaces gebildet werden kann.

Wenn nun eine Klasse benötigt wird, hat man ein Stück Programmcode zu durchlaufen, der einen Pfadnamen aus dem Klassennamen erstellt und dann eine I/O-Operation für den eigentlichen Zugriff. Wenn du hingegen bei jedem Scriptaufruf erstmal tausend I/O-Operationen machen musst, um alle Dateien zu ermitteln, und dann noch bei jeder Suche nach der Klassendatei durch das Array laufen musst, ist das sicherlich nicht die bessere Methode.

Klappt das auch in komplexen strukturen des Frameworks?

Das klappt nur so gut, wie du dich an die Regeln für Benamsung hältst, die auch der Autoloader kennt. Wenn das übereinstimmt, ist die Komplexität aber kein negatives Kriterium diesbezüglich.

dedlfix.