IoC v Nette konfigurovaný přes config.neon
- Savannah
- Člen | 30
Zdravím,
po dlouhé době jsem se zase na chvíli dostal k PHP/Nette. Zajímalo by mě, jestli je v nette nějaká podpora pro IoC (inversion of control), obdobně třeba jako ve Springu (Java)? Jedu nette 2.0-beta.
Koukal jsem na https://forum.nette.org/…guje-v-nette / https://forum.nette.org/…cy-injection , z čehož jsem pochopil, že IoC zde je. Každopádně v příspěvku je jenom spousta PHP kódu a žádná konfigurace přes config.neon.
Moje otázka tedy zní – můžu nějak snadno docílit toho, že si v config.neon zadefinuji služby (DAO, services, …), což jsou implementace nějakých rozhraní, a ty si budou mezi sebou injectovat závislosti, když se budou vytvářet/používat? Můžu takto injectovat i do Presenterů? (presenter bude volat DAO nebo službu)
Koukal jsem, že v tom configu už např. authenticator service je, takže to asi jde, jenom jsem nějak nenašel ten správný dokument s popisem, jak to přesně funguje.
Dík
- Filip Procházka
- Moderator | 4668
Formát pro configu máš zde: https://api.nette.org/…der.php.html#26 (číst i s úvodní větou).
Injektovat do presenterů nejde. Musel by jsi si implementovat vlastní
IPresenterFactory
a zavést si konvenci (třeba
@inject(authenticator)
u vlastností presenteru a pak to reflexí
projet a vstříknout :)