【问题标题】:Using Symfony\Console for an interactive php cli application将 Symfony\Console 用于交互式 php cli 应用程序
【发布时间】:2013-11-14 08:16:03
【问题描述】:

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

php script.php command --option

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

php script.php

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

command --option

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

我对 Symfony 和控制台组件比较陌生,所以对于如何使用 Symfony\Console 来实现它有什么想法吗?因为我真的很喜欢 Symfony\Console 将所有命令内容抽象出来的方式。

【问题讨论】:

    标签: php symfony console command-line-interface symfony-components


    【解决方案1】:

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

    while true {
       <reading stdin>
       <executing command via Symfony2 component>
    }
    

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

    【讨论】:

    • 这听起来合乎逻辑。但是,是否有可能做类似Command::parse($rawInput) 的事情?乍一看,我找不到类似的东西......
    • 好的,谢谢,我找到了一些东西,但是我不得不搜索一段时间。我必须使用:$app-&gt;run(new StringInput('command --option'));,然后将其包装在 while(true)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-25
    • 2015-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多