Проблема, с которой я столкнулась, заключается в том, что spl_autoload($class)
передан в обратном вызове spl_autoload_register, не будет загружать имена классов, которые относятся к одному и тому же имени файла, но в разных каталогах.spl_autoload и те же имена файлов в разных каталогах
То, что я хочу достичь использует spl_autoload
, не используя require
и без пространств имен, чтобы загрузить автоматически следующие классы:
% project_path%/контроллеры/test.php:
class TestController {
}
% project_path% /models/test.php:
class TestModel {
}
Что я делаю замены Controller
или Model
Suff ix в имени класса с пустой строкой, поэтому он получит имя файла class Test
с нижним регистром - test
, а добавление расширения расширения php должно перейти на test.php
.
В начале файла я установил путь включения для ссылки на pear
, в текущий каталог, на models
и на controllers
.
Если есть вопрос, что я пробовал - вот что я пробовал :) spl_autoload() не получает пути, поэтому мне нужно изменить путь включения, чтобы включить файлы.
мне удалось добиться его с требует и явный пути, то имя класса, но я был в сомнении, если это возможно с spl_autoload
после текущего шаблона, без изменения имени файла, имени класса или добавления имен
Ваша функция использует 'require' вместо' spl_autoload' –
в этом коде для «spl_autoload_register» – Mimouni
Вы меня не поняли. Еще раз проверьте мое первое предложение в вопросе. В spl_autoload_register я передаю обратный вызов все, что необходимо для создания реального имени файла $ class, а затем передать его в spl_autoload(). Нет require/include/require_once –