Nette 2.1 DI v extends class
- motorcb
- Člen | 552
Zdravim.
Dělám aplikaci ve které potřebuji ukládat poslední čas aktivity přihlášeného uživatele (kvůli statistice).
Jak bych na to šel?
Udělal bych si proto SecuredPresenter, který dědí od
BasePresenter.
V SecuredPresenter kontroluji zda je uživatel přihlášen (pokud není přesměruji na přihlášení), pokud je přihlášen nastavím s každým načtením do DB uživateli čas poslední aktivity.
Ale jak dostat do SecuredPresenter přístup do DB (konkrétně tabulky user)?
Když budu v SecuredPresenter mít svůj constructor, přes
který budu DI $userRepository, budu muset ve všech presenterech ve kterých
budu mít odděděno od SecuredPresenter přetížený
construcotor pro DI volat rodiče:
parent::__construct( $userRepository );
Trochu se v tom ztrácím…
Jak to vyřešit?
Aby se mi do SecuredPresenter dostal $userRepository a nemusel
jsem se o to v Presenteru, který dědí od SecuredPresenter
vůbec starat.
- Filip Procházka
- Moderator | 4668
Abys pochopil proč se v presenterech a pouze v nich nepreferuje používání constructor injection, přečti si tenhle příspěvek :)