Cytat
Właśnie o to chodzi że tak się nie da bo modele itp. mogą być rozsiane po kilka katalogach w różnych częściach aplikacji.
tak mogą być rozsiane w różnych częściach aplikacji... ale z góry możesz stwierdzić że nie będzie go np. w katalogu z obrazkami... dlatego aby skrypt nie przebijał się przez obrazki w poszukiwaniu klas, czy przez pliki innych dużych zbiorów plików
możesz jednak zapisać tylko:
<?php
$obiekt->szukaj('.');
?>
i mój skrypt przeszuka rekurencyjnie wszystko w katalogu bieżącym
zresztą to nie ma większego znaczenia... skrypt który podałem ma wykonać się tylko raz (gdy aplikacja przechodzi w tryb produkcyjny, w czasie tworzenia aplikacji można ją dołączyć do jakiegoś frontcontrolera) a plik, który wygeneruję jest autoloaderem który pozostaje już stały
jednym słowem ja mam 2 klasy:
- MapaKlas -> przeszukuje wg zaleceń "pliku konfiguracyjnego" którego przykład był poniżej, znajduje klasy, odczytuje jej nazwy i generuje klasę Autoloader'a
- Autoloader -> jak bedzie potrzebna klasa X wyszukuje klasę X w mapie i wczytuje
Cytat
Co za tym idzie, nie zgodzę się, że autoloader powinien zajmować się przeszukiwaniem katalogów.
Zdecydowanie, zbyt dużo czasu by to zajęło...
Cytat
Od tego powinno być osobne narzędzie, które budowało w/w mapę na żądanie programisty (wyobrażacie sobie żeby w środowisku developerskim, przy każdym teście autoloader przeszukiwał katalogi?).
Właśnie od tego jest moja MapaKlas, mówimy jej gdzie chcemy aby szukała (tylko dlatego żeby skrócić czas oczekiwania, bo wiemy że niektórych katalogów nie warto w ogóle otwierać, np. w /download/, /images/, /javascript/, /css/ klas PHP na pewno nie znajdziemy...)
reszta plików niezależnie od rozszerzenia może być otwarta i dokładnie przeszukana tokenizerem PHP w celu znalezienia nawet wielu klas w jednym pliku...