Я хочу создать и использовать пользовательский класс исключения в моем приложении CakePhp.Custom Exception не найден в Cakephp3
Так что я создал DuplicateConfigurationException.php со следующим классом скелетом:
<?php
namespace Cake\Exception;
class DuplicateConfigurationException extends Exception{
} ?>
I контроллер, где я хотел бы поднять исключение, я добавил
use Cake\Exception\DuplicateConfigurationException;
и в функции I звоните
throw new DuplicateConfigurationException();
Следующие предложения во всех интерветах, я попробовал t о поместить файл PHP в следующих местах, но ни один из них, кажется, работает:
SRC/Исключение SRC/Исключения SRC/Lib SRC/Lib/ошибок SRC/Lib/ошибки/исключения
Я всегда получаю ошибку:
Error: Class 'Cake\Exception\DuplicateConfigurationException' not found
File /host/var/www/src/Controller/StructuresController.php
Line: 246
Что еще мне нужно сделать, чтобы сделать торт распознает специальное исключение?
Я хорошо знаю Loading custom class in CakePHP3, но поскольку это исключение не является отдельной библиотекой, я бы предпочел не размещать ее внутри поставщика?
Связанный вопрос не имеет ничего общего с размещением вещей в 'vendor' папке, которая была просто комментарием от довольно неопытного CakePHP/PHP пользователя (без обид) , Помимо ложного заключения о том, что 'Library' является каким-то зарезервированным именем, вопрос показывает, как это должно быть сделано, как должно выглядеть пространство имен и какой путь к папке соответствует пространству имен (PSR-4). – ndm
Мне очень жаль сообщить, что этот комментарий не очень помог. Связанный вопрос не показывает убедительного решения (скорее, изображает пример, который не работал). Я думаю, переименование папки в Berry не подойдет моим потребностям. Также он дает пример пространства имен, который, похоже, не работает в сочетании с заданной настройкой каталога. Тем не менее, ты подтолкнул меня в правильном направлении, и я, наконец, смог его обработать. –
Так, другими словами, это было достаточно полезно. Как уже упоминалось, вывод ложный, и пример в вопросе показывает совершенно правильную установку пространства имен/папок стиля PSR-4, 'App \ Library \ Config' соответствует' src/Library/Config.php' просто отлично, это то же самое схема, которая работает для вас. – ndm