在命令中调用控制台命令并在 Symfony2 中获取输出
我在Symfony2中有一些控制台命令,我需要使用一些参数从另一个命令执行一个命令。
成功执行第二个命令后,我需要获取结果(例如数组),而不是显示输出。
我该怎么做?
我在Symfony2中有一些控制台命令,我需要使用一些参数从另一个命令执行一个命令。
成功执行第二个命令后,我需要获取结果(例如数组),而不是显示输出。
我该怎么做?
在这里,您可以在命令中有一个基本命令。第二个命令的输出可以是 json,然后您只需解码输出 json 即可检索数组。
$command = $this->getApplication()->find('doctrine:fixtures:load');
$arguments = array(
//'--force' => true
''
);
$input = new ArrayInput($arguments);
$returnCode = $command->run($input, $output);
if($returnCode != 0) {
$text .= 'fixtures successfully loaded ...';
$output = json_decode(rtrim($output));
}
您必须在参数数组中传递命令,并且为了避免在 doctrine:fixtures:load 中出现确认对话框,您必须传递 --append 而不是 --force
$arguments = array(
'command' => 'doctrine:fixtures:load',
//'--append' => true
''
);
或者它将失败,并显示错误消息“没有足够的参数”。