我在我的控制器调用的 Symfony 3.4 应用程序中有一些命令:我想要实现的是实时获取它们的输出并将其打印在屏幕上。
根据他们的文档,我几乎尝试了有关 Symfony 进程的所有内容,但没有任何效果:我总是得到一个空输出(如果我转储内容,它会给我一个空字符串)。
我的命令:
class TestCommand extends ContainerAwareCommand
{
/**
* {@inheritdoc}
*/
protected function configure()
{
$this
->setName('say:hello');
}
/**
* {@inheritdoc}
*/
protected function execute(InputInterface $input, OutputInterface $output)
{
for ($i = 1; $i <= 5; $i++) {
$output->writeln(str_pad("$i: Hello Ale", 4096));
sleep(1);
}
}
}
我的控制器:
/**
* @Route("/test")
*/
public function testRoute() {
$process = new Process(['cd', '/Applications/MAMP/htdocs/MyTestProject/', '&&', 'php bin/console say:hello']);
$process->start();
while($process->isRunning()) {
dump($process->getIncrementalOutput());
}
die();
}