Вопрос №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
Как можно решить эту проблему?
В видео я говорил о том что если вам нужен абсолютный путь, а не относительный, то нужно писать так \Exception
.
Крч PSR-4 нужно читать
абсолютное имя - \Exception
Используйте Хекслет по максимуму!
- Задавайте вопросы по уроку
- Проверяйте знания в квизах
- Проходите практику прямо в браузере
- Отслеживайте свой прогресс
Зарегистрируйтесь или войдите в свой аккаунт
С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.







