Я использую __autoload в своем скрипте для включения классов по мере необходимости.Мой скрипт использует подсказки в имени класса, чтобы найти файл, содержащий его.Если он заканчивается в модели, он находится в каталоге модели, контроллеры находятся в каталоге контроллера и т. Д. Я начинаю реализовывать интерфейсы, и поэтому мне нужно настроить мой автозагрузчик.
В идеале, когда объект создаетсяавтозагрузчик определит имя файла объекта, в котором он хранится, и включит файл.Затем он запросит этот класс на предмет того, какие интерфейсы он реализует, и затем автоматически включит эти файлы.
Что-то вроде
function __autoload($classname){
echo $classname;
include ("classes/$classname.php");
$interfaces = class_implements($classname,FALSE);
foreach($interfaces as $name){
if(!class_exists($name,FALSE)){
include("interfaces/".$name."inter.php");
}
}
}
За исключением случаев, когда я это получаю, я получаю ошибку
Невозможно переопределить __autoload () (ранее объявленный в W: \ xampp \ htdocs \ test \ auto.php: 5) в файле W: \ xampp \ htdocs \ test \ auto.php в строке 11
нельзя ли сделать это в __autoload ()?Должен ли я просто продолжать полагаться на соглашения об именах, чтобы различать типы объектов и место их хранения?