【问题标题】:Symfony CLI commands and Compiler passSymfony CLI 命令和编译器通道
【发布时间】:2017-07-16 16:23:19
【问题描述】:

我只想知道如何将我的所有命令 Symfony 服务放入我的编译器通道中?

有没有办法通过实现的接口找到服务?还是我必须全部标记?

谢谢, 吉隆坡。

【问题讨论】:

标签: php command command-line-interface symfony


【解决方案1】:

您应该将它们全部标记。无法检索作为某些预期类/接口实例的服务。

无论如何,您可以获取所有内容,对其进行迭代,并仅过滤那些扩展您界面的内容。但它要慢得多,而且是最糟糕的方式。

【讨论】:

    【解决方案2】:

    我希望我正确理解了您的问题。如果您尝试获取应用程序中定义的所有命令,那么:

        $kernel = $this->container->get('kernel');
        $application = new Application($kernel);
        $commands = $application->all('doctrine');
        var_dump($commands);die;
    

    这个示例使用全新的 symfony 安装,您可以获取所有的学说命令。只需将 'doctrine' 替换为您的命令前缀即可。

    看看 \Symfony\Bundle\FrameworkBundle\Console\Application 尤其是 registerCommands 方法。我正在使用最新版本的 Symfony 3.2.4

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-19
      • 1970-01-01
      • 1970-01-01
      • 2017-05-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多