Metoda has 0 friends


Category Archive

The following is a list of all entries from the Uncategorized category.

Autoloader dla PHP5

Swego czasu napisałem klasę, która pozwala zapomnieć klientowi o używaniu funkcji w rodzaju include czy require_once.
Działanie jest relatywnie proste: klasa na podstawie konfiguracji przechowywanej w pliku XML skanuje wskazane katalogi, tj. buduje mapę plików *.php i ich lokalizacji. Dzięki przykryciu funkcji __autoload() wyszukuje w mapie odpowiednią klasę/interfejs i dołącza ją do wykonywanego skryptu w momencie żądania.
Jedyne o czym należy pamiętać, to konwencje nazewnicze których trzeba się trzymać (jeśli podobnie jak ja, nie lubisz stosować się do czyichś, zawsze możesz zmodyfikować metodę load() ) – klasa ich pilnuje. Istota konwencji polega na różnicach w zapisie nazw plików i deklaracji wewnątrz ich: klasy trzymamy w plikach Nazwa.class.php i tak też je deklarujemy, tj.
class Nazwa {}
Interfejsy trzymamy w plikach Nazwa.interface.php, natomiast deklarujemy nieco inaczej:
interface iNazwa {}
z kolei klasy abstrakcyjne, jak można się domyślić przechowujemy w plikach Nazwa.abstract.php, a deklarujemy jako:
abstract class aNazwa {}
Tyle zasad. Klasa dodatkowo pilnuje „sztucznej” przestrzeni nazw, sztucznej ponieważ tylko zgłasza E_USER_ERROR w przypadku zindeksowania duplikatów.
Nie jest chyba niczym dziwnym, że w przypadku większych projektów, każdorazowe indeksowanie struktury katalogów ma znaczący wpływ na wydajność aplikacji. W swojej wspaniałomyślności ;-) przewidziałem to i wprowadziłem dodatkowy atrybut konfiguracyjny, tj. cache który ustawiony na true, przechowuje mapę w postaci zserializowanej tablicy, umożliwiając szybki jej odczyt. Oczywiście cache należy stosować tylko w środowisku tzw. produkcyjnym, ponieważ w przeciwnym wypadku nowo dodane klasy będą poza zasięgiem autoloadera.
Klasę można pobrać stąd i oczywiście zapisać ją zgodnie z konwencjami ;-) jako LoadMagic.class.php (uploader wordpressa zmienia nazwę pliku). DTD (robione na szybkiego, wybaczcie1) do pliku konfiguracyjnego znajduje się tutaj.
1 Piszę wybaczcie, bo jakimś cudem ten blog subskrybuje 15 osób. Wow. Metoda has 15 friends!