Zrušení (automatické) registrace konkrétního presenteru
- Ivorius
- Nette Blogger | 119
Lze v configu nebo přes CompilerExtension vynutit zrušení registrace pro konkrétní presenter?
Důvod je, že mám různé extension která mohou být na sobě závislá a potřebuji zařídit, aby se nezpracovával presenter (inject service) v jedné extension, pokud není dostupná druhá extension.
Editoval Ivorius (15. 12. 2018 20:44)
- Badaboom
- Člen | 33
Lze v CompilerExtension::beforeCompile()
třeba takto:
$def = $builder->getDefinitionByType(\App\Presenters\FooPresenter::class);
if ($def) {
$builder->removeDefinition($def->getName());
}
Nezabrání to ale vytvoření presenteru, protože výchozí
PresenterFactory
si tu třídu vytvoří i když ji nenajde v DI
containeru (PresenterFactoryCallback::__invoke()).