Vytvoření dalšího kontejneru v configu nebo tak něco
- Ani
- Člen | 226
Ahoj,
chytřejší název mě nenapadnul. Jde mi o to že si v configu teď vytvářem docela dost různých komponent (taková vlastní knihovnička), mám na to extra config, takže je to pěkně oddělené, což je fajn, můžu k nim přistupovat $this->context->createKomponenta().
Jenže jak jich hodně tak v tom je trochu zmatek, navíc bych to chtěl mít extra oddělené od systémového. Takže by se mi líbilo mít je vygenerované v extra kontejneru, který by se připojil jako service do toho systemového, takže bych mohl pšistupovat $this->context->knihovna->createKomponenta().
Nějak mě nenapadá jak na to snad si ten vlastní napsat rovnou v php a připojit ten, ale to bych přisel o pohodlné konfigurování v neonu.
Díky.
- David Grudl
- Nette Core | 8228
Vytvoříš si obecný compiler extension:
class CommonExtension extends Nette\Config\CompilerExtension {}
a pomocí něj nové sekce do config.neon. Například sekci
mySection
:
$configurator = new Nette\Config\Configurator;
$configurator->onCompile[] = function($configurator, $compiler) {
$compiler->addExtension('mySection', new CommonExtension);
};
A pak v config.neon:
common:
nette:
...
services:
...
mySection:
services:
hello: World
A služby budou dostupné přes
$container->mySection->hello
.