Autoloader |
Wpisany przez Patryk yarpo Jar | |||
poniedziałek, 26 lipca 2010 17:31 | |||
Chyba nie muszę nikogo przekonywać do tego, że warto jest podzielić kod na logiczne moduły, zamiast umieszczać wszystkiego w jednym pliku. Później można za pomocą funkcji require_once / include_once załączyć jedynie potrzebne skrypty i z tych cegiełek budować nasz system. Niestety takie rozwiązanie, prócz niezaprzeczalnych plusów, ma też minusy. W tym artykule postaram się pokazać jak owe minusy zniwelować.
Nim zaczniesz warto
Przykład "brzydkiego" kodu
Wady powyższego kodu
RozwiązanieStarczy jedynie użyć ciekawej funckji PHP - autoload. Sprójrz na prosty przykład:
Skoro możemy wyświetlić nazwę klasy, to czemu nie wykorzystać tego do załączenia plików z klasami! Starczy jedynie używac odpowiednich nazw.
Tym sposobem możemy załączyć wszystkie potrzebne pliki. Oczywiście w folderze 'pliki' powinny się znajdować pliki 'klasa1.php', 'klasa2.php', ..., 'klasa5.php'. I w tych plikach powinny znajdować sie deklaracje odpowiednich klas.
PoprawkiKażdy kod na początku nie jest idealny, choć często działa. Warto jednak tu zabezpieczyć sie przed jednym bardzo niebezpiecznym zjawiskiem - możliwością wywołania klasy, która nie istnieje. Warto zastosowac bardzo prostą w użyciu funkcję file_exists.
Załóżmy teraz, że nie będzie pliku 'pliki/klasa1.php'. Co wtedy? Oczywiście powstanie błąd. Warto się przed tym zabezpieczyć:
Takie wydawałoby się oczywiste i banalne zabezpieczenie pozwala nam uniknąć sytuacji, które mogą narazić nas na spore straty (od kwestii finansowych, przez zawieszenie systemu, po bezpieczeństwo i prestiż). Co dalejSkoro już potrafimy ładować automatycznie pliki, to warto teraz nauczyć się jak odpowiednio je przetrzymywać, aby jeszcze przyjemniej móc zarządzać naszym kodem. Ale to już jest temat na inny artykuł, który mam zamiar niedługo napisać.
|