6

我想知道是否有办法在 Command 中找到标记的服务。

我有一个扩展的命令ContainerAwareCommand,我可以访问容器,但我想获取由特定标签标记的所有服务。例如,我想要这样的东西:

$this->getContainer()->findTaggedServiceIds('smtp.transport')
4

1 回答 1

11

标记服务仅在依赖注入容器的构建时可用,而不是在运行时可用。因此,要获取具有特定标签的所有服务,您需要构建一个编译器通道,以保存这些服务的列表,然后您可以在您的命令中使用这些服务。这在本文档中都有描述:

http://symfony.com/doc/current/components/dependency_injection/tags.html

于 2012-08-31T08:51:49.790 回答