PHP: класс автозагрузки не найден
У меня проблема с автозагрузкой классов в PHP.
В моем index.php
Я пишу (это самый простой):
function _autoload($class_name) {
require_once $class_name . '.php';
}
$a = new Cont();
мой Cont.php
файл находится в PROJECT_ROOT/assets/core/Contr.php
;
В результате мой index.php
файл выдает фатальную ошибку:
Fatal error: Class 'Cont' not found in /var/www/bill/index.php on line 15
2 ответа
Так должно быть __autoload()
Похоже, вы пропустили символ подчеркивания.
То есть..
function __autoload($class_name) {
require_once $class_name . '.php';
}
$a = new Cont();
Подсказка из руководства по PHP...
spl_autoload_register () предоставляет более гибкую альтернативу для автозагрузки классов. По этой причине использование __autoload() не рекомендуется и может быть признано устаревшим или удалено в будущем.
Во-первых, это __autoload
- два подчеркивания.
Во-вторых, эта техника не рекомендуется - spl_autoload_register
это лучший вариант.
В-третьих, вам, вероятно, понадобится require_once 'assets/core/' . $class_name . '.php';
если ваши файлы находятся в PROJECT_ROOT/assets/core
,