Пользуюсь простейшим скриптом автолоадера, которого мне хватает с головой:
namespace {
function __autoload($class_addr)
{
$classes_root = str_replace(['/', '\\'], DIRECTORY_SEPARATOR, $_SERVER['DOCUMENT_ROOT']).
DIRECTORY_SEPARATOR.'_classes'.DIRECTORY_SEPARATOR;
$class_addr = str_replace(['/', '\\'], DIRECTORY_SEPARATOR, $class_addr);
require_once $classes_root.$class_addr.'.php';
}
}
В клиенте:
require_once $_SERVER['DOCUMENT_ROOT'].DIRECTORY_SEPARATOR.'autoload.php';
Всё работает на ура, но есть одна проблемка: когда в каком-то скрипте неверно прописано имя класса или неймспейс, выскакивает например вот такая ошибка:
Warning: require_once(E:\OpenServer\domains\asoft.local\_classes\Configurator.php): failed to open stream: No such file or directory in E:\OpenServer\domains\asoft.local\autoload.php on line 8
Когда классов и скриптов подключено много - бывает крайне сложно найти, какой именно скрипт запросил класс с неправильным именем.
Можно ли как-то сделать, чтобы этот автолоадер показывал, из какого скрипта он дёргается?