2012-08-31 3 views
6

コマンドでタグ付きサービスを見つける方法があるかどうかを知りたいと思います。symfony2 - コマンドでタグ付きサービスを見つける

私はContainerAwareCommandのコマンドを持っていますが、私はコンテナに入ることができますが、特定のタグでタグ付けされたすべてのサービスを取得したいと思います。例えば、私はそのようなものを持っているしたいと思います:

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

答えて

10

タグ付きのサービスがない実行時に、依存性注入コンテナのビルド時にのみ使用可能です。したがって、特定のタグを持つすべてのサービスを取得するには、これらのサービスのリストを保存するコンパイラパスを作成し、後でコマンドで使用できるようにする必要があります。これは、すべてこの文書で説明されています

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

+0

はい、私はすでに、私は私のバンドルで$、コンテナ> addCompilerPass()を介して追加コンパイラパスを持っています。問題は、addCompilerPass()を呼び出すことができるようにCommandでContainerBuilderを取得する方法が見つからないことです。あなたは何か考えていますか? – passkey1510

+0

ああ、私はそれを持っています。私は、複数のAppKernelを持つ複数のアプリケーションを持っていますが、バンドルをロードする適切なアプリケーションを呼び出さなければなりません。どうもありがとうございました。 – passkey1510

+0

@ passkey1510あなたはこの回答を受け入れることができますか? :-) –

関連する問題