Подкачка классов
Для расширения взможностей функции __autoload с версии 5,1 появилась новая функция, позволяющая загружать класы из разных каталогов
spl_autoload_register(null,false);
function libsLoader($classLib) {
require("/libs/".$classLib.".php");
}
function baseLoader($classKernel) {
require($classLib.".php");
}
spl_autoload_register('libsLoader',false);
spl_autoload_register('baseLoader',false);
теперь если потребутеся загрузить класс то функция проверит его в базовом каталоге, а затем в каталоге библиотек
April 23rd, 2008 at 6:21 pm
Ну сосем не для того чтобы “из разных каталогов” загружать ее добавляли — это можно было делать и с помощью одной функции.
Прелесть вся в том, что тепрь можно динамически, не переписывая код, влиять на __autoload. Т.е. каждый модуль может добавлять путь к своим либам в зависмости от того включен он или нет.
April 24th, 2008 at 5:43 pm
И плюс, ИМХО, у вас очепяточка:
В статье написано: “…то функция проверит его в базовом каталоге, а затем в каталоге библиотек”, а код выглядит:
spl_autoload_register(’libsLoader’,false);
spl_autoload_register(’baseLoader’,false);
Соответственно, вначале будет произведен поиск в libsLoader, а уж потом в базовом каталоге. Или я не прав?
April 3rd, 2009 at 1:32 pm
Ещё для динамического влияния на __autoload можно изменять include_path. функцией set_include_path() совместно с get_include_path()