Как использовать "корневое" пространство имен php?
У меня есть класс Exception:
namespace abc;
class AbcException extends Exception {
// blah blah
}
Он производит эту ошибку:
Class 'abc\Exception' not found ...
Вопросы:
Спасибо, что прочитал мой вопрос
Ответы
Ответ 1
Что я могу сделать, чтобы сделать эту работу?
Использовать ведущую обратную косую черту, чтобы указать глобальное пространство имен:
namespace abc;
class AbcException extends \Exception {
// blah blah
}
Полезные документы приветствуются.
Там целая страница, посвященная этому в руководстве PHP!
Ответ 2
Класс Exception разрешен для вашего пространства имен скриптов (Руководство PHP), начиная с:
namespace abc;
Вы можете конкретно указать script, какое исключение использовать:
namespace abc;
use Exception;
class AbcException extends Exception {
// blah blah
}
В этом варианте вы видите поверх файла, какие классы вы "импортируете". Кроме того, вы можете более легко изменить /alias каждый класс Exception в файле. См. Также Правила разрешения имен в Руководстве по PHP.
В качестве альтернативы вы можете указать конкретное пространство имен всякий раз, когда вы укажете имя класса. Корневое пространство имен \
, поэтому полное имя класса для исключения - \Exception
:
namespace abc;
class AbcException extends \Exception {
// blah blah
}
Это работает всегда, но, тем не менее, это делает ваш код более привязанным к конкретным классам, которые могут не понадобиться, если кодовая база растет и вы начинаете реорганизовывать свой код.
Ответ 3
Это просто черный знак. Как\Exception.
Ответ 4
Хорошо использовать "использование" при включении/расширении других библиотек классов ИЛИ.
namespace AbcException;
use Exception;
class AbcException extends Exception {
// Your Code
}