将 Symfony\Console 用于交互式 php cli 应用程序

Seb*_*eba 5 php console command-line-interface symfony symfony-components

我想开发一个基于交互式命令的 php 应用程序,所以我做了一些研究并碰到了 Symfony\Console 组件。这很棒,因为它让met运行

php script.php command --option
Run Code Online (Sandbox Code Playgroud)

但是,脚本然后运行命令并关闭,我希望能够运行另一个命令。所以基本上,像

php script.php
Run Code Online (Sandbox Code Playgroud)

然后在 php://stdin 上监听命令,结构为

command --option
Run Code Online (Sandbox Code Playgroud)

然后运行命令并开始侦听新命令。当运行特定的“退出”命令时,脚本应终止。

我对 Symfony 和 Console 组件比较陌生,所以对如何使用 Symfony\Console 实现这一点有什么想法吗?因为我真的很喜欢 Symfony\Console 抽象所有命令的方式。

Vla*_*sny 4

好吧,你必须将 script.php 包含在这样的循环中:

while true {
   <reading stdin>
   <executing command via Symfony2 component>
}
Run Code Online (Sandbox Code Playgroud)

您可以通过按 Ctrl-C 来终止循环