Dodatečná konfigurace CompilerExtension – závislost na jménu rozšíření
- Teyras
- Člen | 81
Zdravím,
Mám CompilerExtension, která načítá služby z konfiguračního souboru
(Compiler::parseServices). Pokud chci tyto služby umístit do sub-containeru
podle toho, pod jakým jménem je extension načtena, použiji parametr
namespace metody parseServices. Problém ale nastane, pokud chci službám
z konfiguráku předat další služby (@service). Ke službám
v sub-containeru se totiž nemůžu dostat bez toho, abych znal jméno
rozšíření (např. @blog.service).
Jde se tohoto nějak zbavit? Je nesmysl uvádět v konfiguraci jméno
rozšíření, které může být vpodstatě jakékoliv. Jediné řešení,
o kterém vím, je přidávat služby přímo v PHP…
Editoval Teyras (24. 9. 2012 22:57)
- Teyras
- Člen | 81
Ono to je docela obecný… :)
Můžeš použít třeba to z tohohle
příkladu. Tam je zrovna vidět, že musíš uvádět předponu blog,
takže musíš rozšíření zaregistrovat takhle
$compiler->addExtension('blog', new MyBlogExtension)
Když jméno z ‚blog‘ změníš třeba na ‚myblog‘, povede to k chybám. Částečně to řeší právě parametr namespace téhle metody. Jenže už neřeší prefix předáváných služeb (@blog.articles atd).
Editoval Teyras (24. 9. 2012 23:22)