Ako automaticky zaregistrovať triedy do DIC
Veľa z vás to možno nevedelo, no Nette 3 má zabudované rozšírenie na
automatické registrovanie tried do DI kontajnera. Takéto rozšírenie dokáže
ušetriť písanie stovky riadkov kódu v neon súboroch kde registrujete
triedy s veľmi podobnými menami (<Niečo>Factory
,
<Niečo>Repository
a tak ďalej).
Povedzme, že máte zložku /app/Model
kde je všetka vaša
výpočtová business logika aplikácie, skoro každá trieda je služba (možno
okrem entít a data tried). Vačšina vaších služieb je pomenovaná ako
ArticleRepository, UserRepository, ArticleFactory, ArticleFacade, mohli ste si
všimnúť, že všetky vaše služby končia s Repository, Facade a Factory a
stále ich registrujete po jednom v neon súboroch.
Táto jednoduchá konfigurácia v neon súbore vám dokáže ušetriť čas a nervy, potom už budete potrebovať registrovať len služby ktoré vyžadujú predávanie parametrov (google/facebook oauth knižnice, recaptcha…).
search:
section:
in: %appDir%/Model
classes:
- *Facade
- *Factory
- *Repository
Všetky možnosti nastavenia tohto rozšírenia (ignorovanie tried, registrovanie iba tried ktoré implementujú/dedia iné triedy a podobne) sú k dispozícií v dokumentácií.
Komentáře
Super věc! Jen je trochu škoda, že to zdá se nefunguje pro registraci rozhraní továren na komponenty https://doc.nette.org/cs/3.1/di-usage#…
Fungovat by to mělo. Pokud ti to nejde, zkus věc popsat podrobněji na fóru.
Chcete-li odeslat komentář, přihlaste se