Как правильно реализовать автозагрузку в PHP, не жертвуя использованием use?

Сразу скажу, что знаю о возможности использования композера. Но я хочу научиться делать это самостоятельно, а затем исследовать готовые инструменты.
Моя проблема заключается в том, что я написал следующий код:

function loader($class)
{
    $class = str_replace('\\', '/', $class);
    $file = SITE_PATH . DS . $class .".php";

    if (file_exists($file)) {
        include $file;
        return true;
    } else {
        return false;
    }
}

spl_autoload_register('loader');


Теперь в автозагрузке участвуют только те классы, которые прописаны следующим образом:

$registry = new core\Registry();

Я не могу использовать use, что меня сильно напрягает. Прописывать же так считается моветоном.

spl_autoload_register('loaderControllers');
spl_autoload_register('loaderModels');
spl_autoload_register('loaderViews');


Как разрешить проблему? Как прописать один раз spl_autoload_register(); при этом не жертвуя возможностью обращаться к классам, используя use и не добавлять регулярно их полный namespace?
  • Вопрос задан
  • 424 просмотра
Пригласить эксперта
Ответы на вопрос 2
php666
@php666
PHP-макака
Переформулируй свой вопрос.
Ничего не понятно.
Автозагрузка и пространства имен никак не связаны, в чем конкретно затык?
Что значит
Я не могу использовать use, что меня сильно напрягает
Ответ написан
gluck59
@gluck59
Виртуальный глюк
"У меня есть чемодан с инструментами. Мне нужно закрутить болт, но я не могу жертвовать использованием отвертки".

Расшифруйте плиз, кто у вас жертва и почему.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы