Функцыя spl_autoload_register
Функцыя spl_autoload_register
рэгіструе зададзеную функцыю ў якасці рэалізацыі метаду аўтазагрузкі класаў. Калі PHP сустракае невызначаны клас, ён паслядоўна выклікае ўсе зарэгістраваныя функцыі аўтазагрузкі, перадаючы ім імя класа. Першы параметр - зваротная функцыя для аўтазагрузкі, другі параметр (неабавязковы) - выкідваць выключэнне пры памылцы, трэці параметр (неабавязковы) - дадаваць функцыю ў пачатак чаргі.
Сінтаксіс
spl_autoload_register(callable $autoload_function [, bool $throw = true [, bool $prepend = false ]]);
Прыклад
Простая рэгістрацыя функцыі аўтазагрузкі:
<?php
function my_autoloader($class) {
include 'classes/' . $class . '.php';
}
spl_autoload_register('my_autoloader');
// Цяпер можна ствараць аб'екты без яўнага include
$obj = new MyClass();
?>
Прыклад
Выкарыстанне ананімнай функцыі для аўтазагрузкі:
<?php
spl_autoload_register(function ($class) {
include 'lib/' . str_replace('\\', '/', $class) . '.php';
});
$obj = new Some\Namespace\MyClass();
?>
Прыклад
Рэгістрацыя некалькіх функцый аўтазагрузкі:
<?php
spl_autoload_register('autoloader1');
spl_autoload_register('autoloader2');
spl_autoload_register('autoloader3', true, true); // Дадаем у пачатак чаргі
// PHP будзе выклікаць функцыі ў парадку: autoloader3, autoloader1, autoloader2
$obj = new MyClass();
?>
Глядзіце таксама
-
функцыю spl_autoload_functions,
якая вяртае аўтазагрузчыкі -
функцыю spl_autoload_unregister,
якая выдаляе аўтазагрузчык -
функцыю class_exists,
якая правярае клас