Php Symfony 3.4处理多输入问题

Php Symfony 3.4处理多输入问题,php,symfony,input,process,command-line-interface,Php,Symfony,Input,Process,Command Line Interface,我已经阅读了文档并尝试了几个示例,但似乎无法让symfony流程组件允许我在出现多个问题时回答这些问题。我事先就知道答案,我很想把它们当作一根弦来输入 我希望在进程中运行的命令如下: $ introduce $ > What is your name? $ Michael $ > How old are you? $ 36 $ > Are you having a good day? $ Yes $ Doing lots of stuff now. $ Info record

我已经阅读了文档并尝试了几个示例,但似乎无法让symfony流程组件允许我在出现多个问题时回答这些问题。我事先就知道答案,我很想把它们当作一根弦来输入

我希望在进程中运行的命令如下:

$ introduce
$ > What is your name? 
$ Michael
$ > How old are you?
$ 36
$ > Are you having a good day?
$ Yes
$ Doing lots of stuff now.
$ Info recorded. Thank you!
一个愚蠢的简单例子。该命令询问三个问题,并希望每个问题都有答案。然后(我真正的命令)开始了一个漫长的过程

我尝试过不同的方法

$process=新流程(“引入”,我的目录);
$process->setTimeout(空);
$inputs=“Michael\n36\nYes\n”;
$process->setInput($inputs);
$process->enableOutput();
$process->start();

$process=新流程(“引入”,我的目录);
$process->setTimeout(空);
$inputs=新的InputStream();
$inputs->write(“迈克尔”);
$inputs->write(“36”);
$inputs->写入(“是”);
$process->setInput($inputs);
$process->enableOutput();
$process->start();
$inputs->close()

$process=新流程(“引入”,我的目录);
$process->setTimeout(空);
$inputs=新的InputStream();
$process->setInput($inputs);
$process->enableOutput();
$process->start();
$inputs->write(“迈克尔”);
$inputs->write(“36”);
$inputs->写入(“是”);
$inputs->close();
然后,等待它完成:

$running=true;
同时($运行){
如果(!$process->isRunning()){
如果(!$process->isSuccessful()){
抛出新异常($process->getErrorOutput());
}
$running=false;
}
我知道我可以使用
->wait()
,但在我的实际应用程序中,我并行启动多个实例,不能让一个块先于其他块完成。因此,我将进程添加到数组中,并在它们完成时将其取消设置。当数组为空时,我会中断循环,继续执行程序

那么,我做错了什么?我如何将预先确定的输入发送到流程,以便它能够回答连续的问题,然后让流程继续