2017-12-19 38 views
0

나는 JMose's Command Scheduler Bundle을 사용하여 cronjob 관리자를 만드는 프로젝트를 진행하고 있습니다. cronjob Manager는 내 자신의 사용자 정의 Symfony 명령 을 처리합니다. 소스.Symfony 오버라이드 명령 클래스 타사 번들

문제는이 Repo가 예외 메시지를 처리하고 명령 콘솔에 오류를 던져 버리는 것입니다. 예외 메시지가 $ e-> getLine() 메소드를 포함하면 매우 깔끔하게 처리되어 예외 메시지가 그것을 생산 한 라인. 아래 코드를 볼 수 있습니다.

try { 
     $output->writeln('<info>Execute</info> : <comment>' . $scheduledCommand->getCommand() 
      . ' ' . $scheduledCommand->getArguments() . '</comment>'); 
     $result = $command->run($input, $logOutput); 
    } catch (\Exception $e) { 
     $logOutput->writeln($e->getMessage()); 
     $logOutput->writeln($e->getTraceAsString()); 
     $result = -1; 
    } 

내가 원하는 것은 해당 코드 줄을 추가하기 위해 클래스를 재정의하는 것입니다. 나는 운이 없으면 그것을 시도했고 나는 Symfony 문서화 사이트에서 도움을 찾을 수 없었다.

현재 프로젝트 구조는 다음과 같습니다. ExecuteCommand 클래스는 내가 재정의하려는 클래스이므로 강조 표시했습니다.

enter image description here

답변

1

상세 모드에서 명령을 실행

php bin/console parse:source -v 

사용 심포니 콘솔 이벤트 : EXCEPTION 또는 console.exception 것은 당신이 어떤 명령을 잡을 수 : https://symfony.com/doc/3.4/components/console/events.html

라는 이벤트가 예외.

+0

안녕하세요, 문제는 예외가 이미 JMose 번들에 의해 처리되고 있다는 것입니다. 또한 Console Events가 예외를 처리하기를 원하지 않습니다. Exception이 JMose에 의해 처리되기 위해서는 명령 실행을 위해 생성 된 cronlog 파일에 기록 될 수 있어야합니다. – marioskamperis