predavanie $container serviceom bez factory
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Petr Motejlek
- Člen | 293
@bazo: Automaticky rozhodně ne. To bys pak zbytečně po všech třídách, co chceš mít jako službu, musel požadovat, aby s Nette DI počítaly, a to je úplně proti filozofii DI. Hezčí a srozumitelnější bude, když si uděláš vlastní továrnu. Do továrny se IContainer automaticky předává.
- Filip Procházka
- Moderator | 4668
Ale ty přece nemáš předávat Container. Máš předávat několik služeb
třídě. Víc nemá potřebovat. Pokud ti to nevyhovuje, vrať se
k Nette\Environment::getService()
- Ondřej Mirtes
- Člen | 1536
Pokud vím, tak Nette DI kontejner podporuje továrničky v podobě anonymních funkcí.
Puristické řešení podle nejlepších teoretických úmyslů™ je mít
pro každou servisu, kterou chceme instanciovat přes továrničku, mít ještě
samostatný objekt s příponou Factory
. Snadno se to pak
konfiguruje.