Я думаю, что это невозможно сделать, если PHP не является языком без гражданства. Но я все равно спрошу ...PHP: Может ли стек __autoload быть постоянным?
Я создал домашнюю структуру MVC. Классы - это все имена. При начальной загрузке я создаю свой собственный класс Autoload. Метод этого класса сканирует зарегистрированные каталоги классов (хранятся в конфигурации приложения) и создает массив имен с полным именем класса для путей. Массив хранится как защищенный член этого класса. Этот массив-член используется реализацией spl_autoload(). Объект Autoloader кэшируется и повторно используется для каждого HTTP-запроса.
Это прекрасно и хорошо. Тем не менее, мне кажется, что каждый раз, когда HTTP-запрос поступает в домен, моя загрузочная процедура должна регистрировать метод автозагрузки в стек __autoload. Я хотел бы зарегистрировать его один раз и оставить его в покое.
Нет. При каждом инициализации приложения вам придется прикреплять автозагрузчик к автозагрузчику. Но вы можете прекратить сканирование каталогов как создание классной карты при самом вызове. Просто сделайте это один раз и выгрузите результат в файл php в виде массива или кешируйте его в APC. –
@ tereško Спасибо за ответ. Да, сканирование каталогов происходит только один раз. –