Я просто мочу ноги с автозагрузкой PHP. Я на самом деле думаю, что у меня есть основы, но так или иначе это все равно не сработает.spl автозагрузка: класс не найден - проблема с пространством имен?
я получил следующую структуру каталогов:
myLib
-bootstrap.php
-sven
-project
project.php
bootstrap.php
является файл, который будет включен использовать LIB. В этом файле, я просто следующий код:
spl_autoload_extensions('.php');
spl_autoload_register();
$var = new \sven\project\project();
$var->init();
И в project.php
:
namespace sven\project;
class project {
public function init() {
echo 'It works!';
}
}
Способ используется автозагрузчик, к моему пониманию, ядро PHP автозагрузчик переводить пространство имен в каталогах а затем найдите php, содержащий класс.
Вместо того, чтобы отображать «Это работает!», Возникает фатальная ошибка. К сожалению, я не могу точно сказать, что это за ошибка, потому что CMS только сообщает мне, что произошла фатальная ошибка.
Но с такой простой структурой, я уверен, что ошибка довольно простая и легко найти для тех, кто знает, как это работает.
Где я ошибаюсь в этом примере - правильно ли я описал, как автозагрузчик должен работать в этой установке или есть недоразумение?
EDIT: Наконец получил ход журнала ошибок:
Fatal error: Class undefined: sven\\project\\project\\project\\project in /xxx/bootstrap.php on line 36
Это, очевидно, выглядит не так, но как изменить это? Почему есть две обратной косой черты?
Ну, я бегу 5.6.99 & hhvm 3.3.0 ;-) – Sven