Перейти к содержанию

3.3 Класс «AutoLoader». Регистрация автозагрузчика

Last updated on 09.05.2021

autoloader2

Регистрируем класс “AutoLoader” в качестве метода автозагрузки. Для этого создаётся метод “register()”, который использует функцию “spl_autoload_register()”.

Метод register()

Метод unregister()

Функция spl_autoload_register()

Дело в том, что регистрация автозагрузчика возможна только с помощью функции “spl_autoload_register()“.

Регистрация автозагрузчика

Функция “spl_autolod_register()” содержит три параметра:

  1. Вызываемая функция (метод)
  2. Флаг использования исключений (в случае неудачи)
  3. Флаг постановки в начало очереди выполнения

В качестве первого аргумента, функция “spl_autolod_register()” получает ссылку на текущий объект. То есть на экземпляр класса “AutoLoader”. Но данная функция может зарегистрировать в качестве автозагрузчика только другую функцию. Нам же необходимо зарегистрировать целый класс. Чтобы это сделать придётся прибегнуть к помощи “магического метода – __invoke()”. Его мы укажем в конце тела класса. Данный метод вызывается, когда скрипт пытается выполнить объект (класс) как функцию.

Функция spl_autoload_unregister()

Так как мы используем функцию регистрации автозагрузчика, то нам может понадобиться и функция отмены регистрации метода автозагрузки. Поэтому создаём метод “unregister()”. Он будет использовать функцию “spl_autoload_unregister()”. Она содержит один параметр. В качестве аргумента мы передаём ссылку на наш класс.

В результате запуска метода “unregister()” класс “AutoLoader” удаляется из очереди автозагрузки.

Опубликовано в рубрике3. Класс AutoloaderЯдро Wordpress