6
标记的服务,我想知道是否有在命令查找标签服务的一种方式。的Symfony2 - 查找命令
我有延伸ContainerAwareCommand
命令,我能够得到的容器,但我想获得由特定的标签标记的所有服务。例如,我想有这样的事情:
$this->getContainer()->findTaggedServiceIds('smtp.transport')
标记的服务,我想知道是否有在命令查找标签服务的一种方式。的Symfony2 - 查找命令
我有延伸ContainerAwareCommand
命令,我能够得到的容器,但我想获得由特定的标签标记的所有服务。例如,我想有这样的事情:
$this->getContainer()->findTaggedServiceIds('smtp.transport')
标签服务仅在依赖注入容器的集结时间,而不是在运行时。因此,要获得具有特定标记的所有服务,您需要构建一个编译器过程,以保存这些服务的列表,然后您可以在命令中使用这些服务。这是本文档中的所有描述:
http://symfony.com/doc/current/components/dependency_injection/tags.html
是的,我已经编译通过,我在我的包通过$容器 - > addCompilerPass()加入。问题是,我找不到在Command中获取ContainerBuilder的方法,因此我可以调用addCompilerPass()。你有什么主意吗? – passkey1510
啊好的,我明白了。我有多个具有多个AppKernel的应用程序,只需调用加载该程序包的正确应用程序即可。非常感谢你。 – passkey1510
@ passkey1510你可以接受这个答案吗? :-) –