Мне трудно заставить работать spl_autoload_register.
Текущая структура папок:
config/
autoLoader.php
dataBase.php
lib/
userClass/
user.php
web/
userHomepage/
index.php
config/autoLoader.php
spl_autoload_register(function($class)
{
include_once $_SERVER['DOCUMENT_ROOT'] . '/project/lib/userClass/' . $class . '.ph';
});
lib/userClass/user.php
namespace userClass;
class userClass
{
public function printName()
{
echo 'Stackoverflow'
}
}
web/userHomepage/index.php
include $_SERVER['DOCUMENT_ROOT'] . '/project/helpers/autoLoader.php';
$userClass = new userClass;
Хотя он не работает, он возвращает userClass not found. Эта проблема связана с тем, что пространство имен не печатается правильно, хотя вместо этого оно должно включать их путь? Я уже проверил веб-сайт php для получения помощи, но это не ясно, просмотрел каждый пост об этом, но ничего не указывает в правильном направлении!
$class
в своей функции автозагрузки, чтобы получить более четкое представление о том, что происходит? Я бы посоветовал вам придерживаться PSR-0 и использовать уже существующий автозагрузчик, вероятно, сгенерированный Composer. - person Sven   schedule 30.09.2013config
,lib
иweb
были частью пространства имен, чтобы вы могли использовать их в физическом пути к файлам. - person George Brighton   schedule 30.09.2013