6

コマンドでタグ付けされたサービスを見つける方法があるかどうか知りたいのですが。

拡張するコマンドがあり、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 に答える