私はJMose's Command Scheduler Bundleを使用してプロジェクトを作成しており、cronjobマネージャを作成しています。 cronjob Managerは私自身のカスタムSymfonyコマンドを処理します:ソース。symfonyオーバーライドコマンドクラスをサードパーティのバンドルから
問題は、このレポがコマンドコンソールで例外とスローエラーを処理していることです。これは例外メッセージが出力されるために$ 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は、オーバーライドするクラスであるため、強調表示しています。
こんにちは、問題は例外がすでにJMose Bundleによって処理されていることです。さらに、Console Eventsで例外を処理することは望ましくありません。例外がJMoseによって処理されるように、コマンド実行のために作成されたcronlogファイルに書き込むことができます。 – marioskamperis