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