Automatická registrace presenterů (Option ‘scanDir’ has no effect, global RobotLoader is used.)
- tomees
- Člen | 59
Ahoj, v aplikaci používáme různé moduly jako DI extension, které
zapínáme / vypínáme přidáním do configu. Moduly obsahují i presentery a
doteď nám vyhovovalo, že se automaticky neregistrovaly do DI, protože pokud
Modul (extension) nebyl registrovaný a presenter z modulu byl zaregistrován,
spadlo to na neexistenci nějaké závyslosti právě z toho
nezaregistrovaného modulu.
Případnou optimalizaci jsem pak řešil přes scanDirs
po aktualizaci na poslední verzi nette/application máme problém s tím, že nyní probíhá automatické vyhledání všech presenterů a registrace a tím pádem máme problém. Pravděpodobně to má i spojitost s tím, že vše načítáme přes RobotLoader a nyní při pokusu ovlivnit toto chování přes scanDirs dostávám hlášku
User Deprecated
Option ‚scanDir‘ has no effect, global RobotLoader is used.
Jde toto nějak nyní řešit? Nebo jak byste řešili aby se neregistrovaly určité presentery které nemáte v plánu používat?
Díky
Editoval tomees (9. 11. 2019 11:26)
- David Grudl
- Nette Core | 8227
Máš pravdu, že teď vypnout automatické registrování presenterů nejde. Chování jsem opravil, teď má scanDirs přednost před použitím systémového RobotLoaderu.
- Gappa
- Nette Blogger | 208
Pro doplnění, pokud by tento thread někdo našel stejně jako já :)
nette/application 3.0.2
(a asi i nižší, do verze 3.0) –scanDirs
vypnout nejdou.nette/application 3.0.3
(vyžadujícínette/utils 3.1.0
) –scanDirs
vypnout jdou, klasicky pomocí hodnotyfalse
.
Editoval Gappa (7. 1. 2020 7:20)