@Aricus

Почему не происходит автозагрузка класса?

Автозагрузка класса:
spl_autoload_register(function ($class_name) {
	var_dump($_SERVER['DOCUMENT_ROOT'].'/'.Param::get('urlFrag').'/php/classes/'.$class_name.'.php');
	require_once $_SERVER['DOCUMENT_ROOT'].'/'.Param::get('urlFrag').'/php/classes/'.$class_name.'.php';
});

В результате получается (путь за***):
***\php\functions.php:25:string '***/php/classes/Control\Standart\Standart.php' (length=70)

( ! ) Fatal error: Uncaught Error: Class 'Control\Standart\Standart' not found in***\php\classes\Param.php on line 30

Если в начале файла ***/php/classes/Control\Standart\Standart.php поставить var_dump, он тоже не выведется.
Однако, если перед spl_autoload_register прямо написать (просто скопировал из var_dump).
require_once '***/php/classes/Control\Standart\Standart.php';

, то класс успешно загружается, ошибка исчезает.
Ошибка только в этом месте. Остальные классы, а также этот класс на других страницах, успешно загружается.
  • Вопрос задан
  • 48 просмотров
Пригласить эксперта
Ответы на вопрос 1
@khalmurad
PHP dev
spl_autoload_register(function($className) {
    $classFile = __DIR__ . "/php/classes/{$className}.php";
    if (file_exists($classFile )) {
        require_once $classFile ;
    }
});
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы