Funkcja spl_autoload_register
Funkcja spl_autoload_register rejestruje podaną funkcję jako implementację metody automatycznego ładowania klas. Kiedy PHP napotka niezdefiniowaną klasę, kolejno wywołuje wszystkie zarejestrowane funkcje autoloadingu, przekazując im nazwę klasy. Pierwszy parametr - funkcja callback do automatycznego ładowania, drugi parametr (opcjonalny) - czy wyrzucać wyjątek przy błędzie, trzeci parametr (opcjonalny) - czy dodać funkcję na początek kolejki.
Składnia
spl_autoload_register(callable $autoload_function [, bool $throw = true [, bool $prepend = false ]]);
Przykład
Prosta rejestracja funkcji automatycznego ładowania:
<?php
function my_autoloader($class) {
include 'classes/' . $class . '.php';
}
spl_autoload_register('my_autoloader');
// Teraz można tworzyć obiekty bez jawnego include
$obj = new MyClass();
?>
Przykład
Użycie funkcji anonimowej do automatycznego ładowania:
<?php
spl_autoload_register(function ($class) {
include 'lib/' . str_replace('\\', '/', $class) . '.php';
});
$obj = new Some\Namespace\MyClass();
?>
Przykład
Rejestracja wielu funkcji automatycznego ładowania:
<?php
spl_autoload_register('autoloader1');
spl_autoload_register('autoloader2');
spl_autoload_register('autoloader3', true, true); // Dodajemy na początek kolejki
// PHP będzie wywoływać funkcje w kolejności: autoloader3, autoloader1, autoloader2
$obj = new MyClass();
?>
Zobacz też
-
funkcję spl_autoload_functions,
która zwraca autoloadery -
funkcję spl_autoload_unregister,
która usuwa autoloader -
funkcję class_exists,
która sprawdza klasę