Вопрос №1758 от пользователя Никита в уроке «Пространства имен», курс «PHP: ООП»

Никита

Посмотрел Ваш курс и решил поменять структуру своего приложения. Идея такая, что каждый класс имеет свое пространство имен и оно равно директории где этот класс находится. Все классы подгружаются автоматически таким образом:

spl_autoload_register(function ($class) {
    $path = dirname(__FILE__) . "/" . str_replace("\\", "/", $class);
        spl_autoload($path);
    });

Автозагрузчик находится в корне. И сразу возникла проблема со встроенным классом Exception Что бы подключить класс NotFoundPageException,который находится в /Core/ нужно задать ему namespace Core, тогда автозагрузчик сможет его подключить по такому пути Core/NotFoundPageException.

namespace Core;
    class NotFoundPageException extends Exception {}

Проблема в том, что пространство имен распространяется на родительский класс Exception, в итоге: Fatal error: Class 'Core\Exception' not found

Как можно решить эту проблему?

3 0

Kirill Mokevnin

В видео я говорил о том что если вам нужен абсолютный путь, а не относительный, то нужно писать так \Exception.

1

Никита

Крч PSR-4 нужно читать

0

Никита

абсолютное имя - \Exception

1

Используйте Хекслет по максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Даю согласие на обработку персональных данных, соглашаюсь с «Политикой конфиденциальности» и «Условиями оказания услуг»

Рекомендуемые программы

С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.

Иконка программы Фронтенд-разработчик
Профессия
Разработка фронтенд-компонентов веб-приложений
1 июня 10 месяцев
Иконка программы Python-разработчик
Профессия
Разработка веб-приложений на Django
1 июня 10 месяцев
Иконка программы PHP-разработчик
Профессия
Разработка веб-приложений на Laravel
1 июня 10 месяцев
Иконка программы Node.js-разработчик
Профессия
Разработка бэкенд-компонентов веб-приложений
1 июня 10 месяцев
Иконка программы Fullstack-разработчик
Профессия
Новый
Разработка фронтенд и бэкенд компонентов веб-приложений
1 июня 16 месяцев
Иконка программы Верстальщик
Профессия
Вёрстка с использованием последних стандартов CSS
в любое время 5 месяцев
Иконка программы Java-разработчик
Профессия
Разработка приложений на языке Java
1 июня 10 месяцев
Иконка программы Разработчик на Ruby on Rails
Профессия
Создает веб-приложения со скоростью света
1 июня 5 месяцев