Гайз, прошу помощи, не могу добиться чтоб функция spl_autoload_register адекватно работала с namespace. index.php PHP: namespace project; $map = include "map.php"; spl_autoload_register(function($class) { global $map; require_once $map[$class]; }); use project\app\PageRouter as PageRouter; $pageRouter = new PageRouter("i"); app/PageRouter.php PHP: namespace project\app; class PageRouter { public function PageRouter($url) { echo "ok"; } } Ну а переменная $map вот: Код (Text): Array ( [project\app\PageRouter] => app/PageRouter.php ) Собственно, сам файл инклюдится (проверял написав эхо вне класса), но класс собственно нужный не создается, эхо в конструкторе не выводится. Подскажите, как должна мапа выглядеть или что сделать чтоб работало адекватно?
Изучи и пойми PSR4, потом используй его http://www.php-fig.org/psr/psr-4/ https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-4-autoloader-examples.md
Как оно подключает файлы я вроде понял (оно ведь их подключает), но вот у меня с неймспейсами косяк видно ... Не подскажешь что не так в моем коде?
И ещё одно: если в классе PageRouter создать какую-то переменную, то когда вардампишь $pageRouter, то оно её видит. Или если сделать функцию которая возвращает ту переменную - тоже работает. Но эхо не выполняется с конструктора. В других функциях эхо работает. Что бы это могло быть? --- Добавлено --- Короче оказалось, что единственное, что не работает - это старый конструктор (через function НазваниеКласса). А конструктор __construct работает. Версия 5.5 . Но если без неймспесов то обычный конструктор работает.