2012-08-31 4 views
6

Command에서 태그가있는 서비스를 찾을 수있는 방법이 있는지 알고 싶습니다.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 그러면이 대답을 수락 할 수 있습니까? :-) –

관련 문제