spl_autoload

Hi,

ich habe zu hause wie auf Intranet-Anwendungen immer folgendes Prinzip(aus der Java-Welt) verfolgt:

spl_autoload_extensions(".php");

spl_autoload_register();

Ordner-Struktur:

top-level-domain/domain/Ordner

also z.B.

de/domain/controllers

auf einem shared Hoster funktioniert das nicht -> das erste was ich gemacht habe war:

set_include_path(get_include_path().PATH_SEPARATOR.ROOT_PATH);

danach folgten 4 Stunden -> eigene Autoloadfuntion bis zu composer soll das übernehmen, letztendlich hab ich in ca. 1 Stunde die entsprechenden Requires zu den Klassen zugefügt und werde jetzt einen loader dafür schreiben, jedoch würde mich interessieren warum das Konzept nicht funktioniert hat?

Gruß XXD

nachträglich noch die Lösung:

unter Mac wie Windows-Servern funktioniert das Prinzip perfekt, jedoch benutzen alle Shared-Hoster ein richtiges OS, also Linux :wink:

Wer spl_autoload_register() nach der Java-Welt benutzen möchte, muss die Dateinamen auf Linux-Servern klein schreiben, Klassen und uses bleiben groß wie gehabt. Zwar ist nur der Core des Frameworks betroffen, denn die Implementierung an sich benutzt Lazy-Loading (eigene Kreation), für alle Komponenten und funktioniert auch weiterhin mit: MyClass.php. Letztendlich muss man halt nur einen eigenen Loader für den Core schreiben, frage mich aber trotzdem warum spl_autoload so umgesetzt wurde, kann das jemand erklären…warum Dateiname muss klein sein???