Используемая мной функция автозагрузки выглядит следующим образом: -
function __autoload($moduleName)
{
//Logic to check file existence- include if exists else redirect to fallback page
}
Не принимает ли другие аргументы?Я хочу выполнить некоторую логику, основанную на некоторых переменных внутри функции автозагрузки.Как мне сделать это без использования глобальных переменных?
Спасибо
Дополнительные сведения
Я думаю, что это невозможно в классе __autoload ()но все еще пытаюсь объяснить с помощью примера.
У меня есть файл modules.config, который имеет массив: -
$viewClassMap = array('search_classes' => 'commonClassListings',
'search_packs' => 'commonPackListings',
);
Приведенный выше массив означает, что класс commonClassListings должен быть включен в случаев представлении search_classes класс commonPackListings должен быть включен в случае представления search_packs.Для всех других представлений по умолчанию будет включен класс commonDisplay
function __autoload($viewName,$viewClassMap)
{
if(in_array($viewName,$viewClassMap))
{
$viewTobeIncluded = $viewClassMap[$viewName];
include path/to/$viewTobeIncluded;
}
else
{
include path/to/commonDisplay;
}
}
Теперь я думаю, что логика внутри функции __autoload должна быть удалена, и сначала необходимо вычислить загружаемое представление, а затемдолжна вызываться только автозагрузка.Это также является целью автозагрузки (чтобы включить файл класса, объект которого был инициирован).
Обновления
Моя функция автозагрузки не находится внутри класса представления, чей объект IЯ собираюсь начать во время выполнения (в отличие от примера Blizz).У меня есть общая функция автозагрузки, определенная в файле pageLoader.php, который включен в общий froncontroller.Для каждого модуля класс представления инициируется как
$view = new search_classes();
Тогда общая функция автозагрузки должна проверить, присутствует ли соответствующий родительский класс представления (в данном случае commonClassListings), или нет, если это так, включите его и search_classesпосмотреть на себя и инициировать объект, иначе отступление.Для этого мне нужно передать массив $viewClassMap
в функцию автозагрузки.Это возможно?