CakePhp 응용 프로그램에서 사용자 정의 예외 클래스를 생성하고 사용하고 싶습니다. Cakephp3에 사용자 정의 예외가 없습니다.
<?php
namespace Cake\Exception;
class DuplicateConfigurationException extends Exception{
} ?>
가 나는 예외를 제기하고자하는 컨트롤러가, 내가
use Cake\Exception\DuplicateConfigurationException;
및 함수 I 내에서 추가 :
그래서 나는 다음 클래스 골격으로 DuplicateConfigurationException.php을 생성 전화throw new DuplicateConfigurationException();
interwebs 전체에 대한 제안에 이어 나는 오 다음 위치에있는 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을 잘 알고 있지만,이 예외는 별도의 라이브러리가 아니기 때문에 공급 업체 내에 배치하지 않을 것입니까? SRC/예외에
/DuplicateConfigurationException.php
을 컨트롤러에서 :
링크 된 질문, 즉 다소 미경 CakePHP의/PHP 사용자 (악의)에서 불과 주석이 있던'vendor' 폴더에 물건을 배치 함께 할 수 없다 . 라이브러리가 어떻게 든 예약 된 이름이라는 잘못된 결론 외에도, 질문은 어떻게해야하는지, 네임 스페이스가 어떻게 보이는지, 어떤 폴더 경로가 네임 스페이스 (PSR-4)와 일치 하는지를 보여줍니다. – ndm
이 말은별로 도움이되지 않았다는 사실을보고해서 죄송합니다. 링크 된 질문은 결정적인 해결책을 제시하지 못합니다 (오히려 작동하지 않는 예제를 묘사 함). 나는 Berry로 폴더 이름을 바꾸는 것이 나의 요구에 어울리지 않을 것이라고 생각한다. 또한 주어진 디렉토리 설정과 함께 작동하지 않는 네임 스페이스의 예를 제공합니다. 그러나, 당신은 올바른 방향으로 나를 찔렀다, 마침내 그것을 해결할 수있었습니다. –
다른 말로하면, 그것은 충분히 도움이되었습니다. 앞에서 언급했듯이 결론은 틀렸고 질문에있는 예제는 완벽하게 유효한 PSR-4 스타일 네임 스페이스/폴더 설정을 보여 주며'App \ Library \ Config'는'src/Library/Config.php'와 정확히 일치합니다. 당신을 위해 일하는 계획. – ndm