0

我有一个项目,我在其中使用JMose 的命令调度程序包来创建一个 cronjob 管理器。cronjob 管理器处理我自己的自定义 Symfony 命令parse:source

问题是这个 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 类,因为它是我要覆盖的类。

在此处输入图像描述

4

1 回答 1

1

以详细模式运行命令:

php bin/console parse:source -v

使用 Symfony 控制台事件: https ://symfony.com/doc/3.4/components/console/events.html

有一个事件称为:EXCEPTION或者console.exception您可以在其中捕获任何命令异常。

于 2017-12-19T21:04:31.880 回答