Ako automaticky zaregistrovať triedy do DIC

před 5 lety od Rick Strafy  

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

  1. 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#…

    před 3 lety
  2. Fungovat by to mělo. Pokud ti to nejde, zkus věc popsat podrobněji na fóru.

    před 3 lety

Chcete-li odeslat komentář, přihlaste se