Я хотел бы сделать мои проекты настолько опасными, что можно просто скопировать + вставить их друг в друга.AutoLoader для неизвестных уровней проекта
Моя структура проекта - это имя проекта/(bin, config, lib).
После копирования + вставки у меня была бы цепочка, подобная ProjectName1/lib/ProjectName2/lib/ProjectName3 /.
Теперь было бы здорово, если Autoloader будет искать файлы в соответствии с уровнем, на котором был вызван файл.
Например, если класс внутри ProjectName1/lib/ProjectName2/lib/вызывает «новую конфигурацию», он должен получить конфигурационный файл, расположенный в ProjectName1/lib/ProjectName2/config/config.php.
(Но не тот, что указан в ProjectName1/config/config.php и не включен в ProjectName1/lib/ProjectName2/lib/ProjectName3/config/config.php).
Есть ли способ сделать это?
Редактировать: Имеет ли смысл делать файлы уникальными? Например: Если «config.php» был «ProjectName2Config.php», существует (почти) отсутствие конфликтов. Таким образом, автозагрузчик может искать везде и в конечном итоге найти файл.
Редактировать: У каждого проекта будет свой автозагрузчик, доступный для копирования и вставки. Однако я думал, что буду загружать только один для ProjectName1. Лучше ли загружать их все, чтобы каждый мог оставаться простым?
Приветствие, Peter
PS: Я только что вернулся из 3-х лет программирования перерыва. Я также счастлив, если вы скажете мне, что выше есть на самом деле плохая идея и дайте мне причину, почему :-)
Просто напишите php-функцию, которая делает именно это, и зарегистрируйте его как автозагрузчик - просто поиграйте с ним. недостатком может быть то, что инструментам для кодирования будет сложно найти правильные классы, и вы можете, если структура станет достаточно грязной. (http://php.net/manual/en/function.spl-autoload-register.php) –