如何从控制器调用命令并使用调试模式?

时间:2017-01-20 19:36:16

标签: php symfony

如果我使用控制台执行任务,我可以添加--no-debug:

php app/console app:task-name web-user --no-debug

这是Controller内部调用任务'task-name'的功能,它可以正常工作

public function generateSomethingAction() {
    $kernel = $this->get('kernel');
    $application = new Application($kernel);
    $application->setAutoExit(false);
    $input = new ArrayInput(array(
        'command' => 'app:task-name'
    ));
    $output = new BufferedOutput();
    $application->run($input, $output);
    ......

如果我从控制器调用命令,我想知道是否可以添加--no-debug?

1 个答案:

答案 0 :(得分:2)

要传递不需要值的其他参数,只需将它们添加到ArrayInput数组中,其值为“true”。

E.g。

$input = new ArrayInput([
        'command'     => 'app:task-name',
        '--yell'      => true,
        '--no-debug'  => true,
    ]);