Dynamické injectiovanie extensions
- xrep
- Člen | 51
Ahoj,
napísal som si nejaký extension na Blogger API a funguje to tak, že tam mám zdroják a aktivujem/deaktivujem to cez vyplňenie config.neon teda
extensions:
BloggerAPI: tralala/tralala
Vtip je v tom, že na niektorých projektoch to chcem mať aktivované a na
niektorých nie.
Keď teda odmažem BloggerAPI z extensions tak mi to vyhodí hlášku o tom
či som nezabudol zaregistrovať extension (lebo v kóde sa používa)
Ako to riešiť?
Momentálne to riešim v presenteri takto:
<?php
public function loadExtensions() {
// Blogger
try {
$this->blogger = $this->context->getService( 'blogger.blogger' );
}
catch ( \Nette\DI\MissingServiceException $e ){
$this->blogger = null;
}
}
?>
Niekde som ale čítal že používanie $this->context nie je ok, a neviem vymieslieť nič rozumnejšie. Resp. existuje nejaký „čisty spôsob“ ako si vytahnuť zoznam načítaných extensions?
Vďaka
- Zax
- Člen | 370
Službu vyžádanou v konstruktoru nebo inject metodě jde označit jako nepovinnou přidáním default hodnoty NULL.
function __construct(Blogger $blogger = NULL) {
$this->blogger = $blogger;
}
(nevím, jestli je nějaká finta i pro inject anotace, ty jsem přestal používat před dlouhou dobou)
Editoval Zax (14. 9. 2015 11:35)