Полезные ссылки
- Namespaces in PHP
- Пространства имен в PHP

Остались вопросы? Задайте их в разделе «Обсуждение»
Вам ответят команда поддержки Хекслета или другие студенты
Вам ответят команда поддержки Хекслета или другие студенты
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно
Наши выпускники работают в компаниях:
Зарегистрируйтесь или войдите в свой аккаунт
Курс «PHP: ООП»
↳ Урок «Пространства имен»
Что то вообще не въехал. :-(
Пробую определить нэймспэйс в файле App/First.php для класса из файла test.php '$oneClass = new \App\First();'. Согласно видео должно быть вида
Code (possible spoiler)
namespace App\First;
Выдает ошибку..... хоть направление дайте :-(
Покажите пожалуйста ошибку
Курс «PHP: ООП»
↳ Урок «Пространства имен»
хм, какие бы неймспейсы я не ставила, одна и та же ошибка:
PHP Parse error: syntax error, unexpected 'class' (T_CLASS) in /usr/src/app/App/First.php on line 7
Parse error: syntax error, unexpected 'class' (T_CLASS) in /usr/src/app/App/First.php on line 7
что я делаю не так?
Точкой с запятой! Спасибо)
Курс «PHP: ООП»
↳ Урок «Пространства имен»
Почему в php для namespace приняли именно обратный слеш ? В других языках вроде используется другой разделитель ?
В большинстве языков неймспейсы появились еще на этапе проектирования. PHP развивался абсолютно хаотично, и к моменту когда туда решили внедрить неймспейсы, он содержал уже приличное легаси. Поэтому данное решение продиктовано соображениями "не навреди".
Курс «PHP: ООП»
↳ Урок «Пространства имен»
Курс «PHP: ООП»
↳ Урок «Пространства имен»
А как в NameSpace смотреть на уровень вверх? ..\ не работает что-то
Спасибо!
Курс «PHP: ООП»
↳ Урок «Пространства имен»
Возникли сложности с тестом. Вопрос
Выберите все истинные утверждения Две переменные с одинаковым именем могут существовать в разных пространствах имен Два разных пространства имен с одинаковым именем могут существовать внутри разных пространств имен Две переменные с одинаковым именем могут существовать в одном пространстве имен Одно пространство имен может находиться в другом пространстве имен Два класса с разными именами могут существовать в разных пространствах имен
Можем разобрать подробнее каждый пункт? видимо чего-то не понимаю..
Убрали вопрос, так как некорректно сформулирован. Спасибо за отзывы.
Курс «PHP: ООП»
↳ Урок «Пространства имен»
Посмотрел Ваш курс и решил поменять структуру своего приложения. Идея такая, что каждый класс имеет свое пространство имен и оно равно директории где этот класс находится. Все классы подгружаются автоматически таким образом:
Code (possible spoiler)
spl_autoload_register(function ($class) { $path = dirname(__FILE__) . "/" . str_replace("\\", "/", $class); spl_autoload($path); });
Автозагрузчик находится в корне. И сразу возникла проблема со встроенным классом Exception Что бы подключить класс NotFoundPageException,который находится в /Core/ нужно задать ему namespace Core, тогда автозагрузчик сможет его подключить по такому пути Core/NotFoundPageException.
Code (possible spoiler)
namespace Core; class NotFoundPageException extends Exception {}
Проблема в том, что пространство имен распространяется на родительский класс Exception, в итоге: Fatal error: Class 'Core\Exception' not found
Как можно решить эту проблему?
абсолютное имя - \Exception