Inject neautowirované servisy do presenteru
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Honza Marek
- Člen | 1664
Jak řeknu Nette, aby narvalo do presenteru službu, která se nadá najít pomocí autowire?
Kdyby mi někdo chtěl tvrdit, že to nepotřebuju, tak mám příklady :) 1) nepoděděná doctrine repository 2) ukládátko obrázků do složky použité jako originalImagesRepository a thumbnailsRepository
- jiri.pudil
- Nette Blogger | 1032
Od Nette 2.1 můžeš presenter zaregistrovat jako službu a závislosti si předat explicitně v configu:
services:
fooPresenter:
class: FooPresenter
setup:
- setFooRepository(@fooRepository)
- Honza Marek
- Člen | 1664
Dík. Ještě mě napadla jedna specialitka. Jak něco takového nastavit BasePresenteru?
- thunderbuff
- Člen | 164
Můžeš tu svou službu předat ručně do nějaké „mezislužby“ a tu do basepresenteru injectovat běžným způsobem.
- Jan Tvrdík
- Nette guru | 2595
Honza Marek wrote: Jak něco takového nastavit BasePresenteru?
Přepsat PresenterFactory
=)
- Filip Procházka
- Moderator | 4668
Služby by mělo jít dědit, ale nezkoušel jsem, možná to bude řvát že tomu chybí classa.
services:
basePresenter:
setup:
- setFooRepository(@fooRepository)
fooPresenter < basePresenter:
class: FooPresenter