Funkcję automatycznego ładowania (PHP autoloader) należy zarejestrować za pomocą funkcji spl_autoload_register()
.
W PHP jest kilka sposobów na automatyczne ładowanie plików zawierających klasy, które jeszcze nie zostały załadowane. Kiedyś w tym celu używało się magicznej funkcji globalnej o nazwie __autoload()
. Niestety tylko jedna taka funkcja na raz może być zdefiniowana, więc jeśli dołączymy do skryptu bibliotekę, w której również znajduje się jej definicja, powstaje konflikt.
Dlatego najlepszym sposobem jest nadanie swojej funkcji automatycznego ładowania jakąś niepowtarzalną nazwę, a następnie zarejestrowanie jej za pomocą funkcji spl_autoload_register()
. W ten sposób można posługiwać się wieloma definicjami funkcji __autoload()
bez obawy o konflikty.
Przykład użycia funkcji spl_autoload_register()
<?php // najpierw definiujemy w PHP autoloader function MyAutoload($className){ include_once($className . '.php'); } // następnie rejestrujemy ją w PHP. spl_autoload_register('MyAutoload'); // wypróbowujemy swoją funkcję // Jako że nie dołączyliśmy do skryptu pliku z klasą MyClass, nasz autloader dołączy automatycznie plik MyClass.php. // Na potrzeby tego przykładu przyjmujemy, że definicja klasy MyClass znajduje się w pliku MyClass.php. $var = new MyClass(); ?>