2012-08-31 11 views
6

Vorrei sapere se esiste un modo per trovare servizi taggati in Command.Symfony2 - Trova servizi taggati nel comando

Ho un comando che si estende ContainerAwareCommand, sono in grado di accedere al contenitore ma vorrei ottenere tutti i servizi contrassegnati da un tag specifico. Ad esempio, mi piacerebbe avere qualcosa di simile:

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

risposta

10

servizi etichettate sono disponibili solo in accumulo momento del contenitore iniezione di dipendenza, non in fase di esecuzione. Quindi, per ottenere tutti i servizi con un determinato tag è necessario creare un pass per compilatore che salvi un elenco di questi servizi che è possibile utilizzare successivamente nel comando. Tutto questo è descritto in questo documento:

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

+0

Sì, ho già un pass compilatore che ho aggiunto tramite $ container-> addCompilerPass() nel mio Bundle. Il problema è che non sono riuscito a trovare un modo per ottenere ContainerBuilder in Command in modo che potessi chiamare addCompilerPass(). Hai qualche idea? – passkey1510

+0

Ah Ok, ce l'ho. Ho più app con più AppKernel, basta chiamare l'app giusta per caricare il pacchetto. Grazie mille. – passkey1510

+0

@ passkey1510 Puoi accettare questa risposta? :-) –

Problemi correlati