Jak volat funkce z presenteru, kterej extenduje AppPresenter
- warriotox
- Člen | 30
Mam aplikaci, globalni funkce chci mit v AppPresenteru (extends
basePresenter)
a pak mam dalsi presenter pro segmenty aplikace (recepce, admin, office,…)
takze napriklad z RecepcePresenteru chci volat public funkci
„pullRequests()“, jak to do toho RecepcePresenteru napisu prosim?
- warriotox
- Člen | 30
CZechBoY napsal(a):
Nedělej z presenterů všemohocí třídu (god object), radši vše rozděl do malých služeb (SRP) a ty si vždy vyžádej v konkrétním presenteru/další službě.
rad bych rekl, ze chapu co to znamena v praxi, ale bohuzel tomu tak neni. Volani funkce podrazenyho presenteru z nadrazenyho je bad practice?
- Tomáš Jacík
- Člen | 147
@warriotox Ne obecně. Bad practice je porušování SRP. Presenter, jak už název napovídá, by měl řešit jen prezentaci navenek. Pokud máš nějaké funkce, které využíváš na více místech, rozhodně by neměly být v AppPresenteru Měl by si je vyčlenit do samotné třídy/služby, kterou budeš injectovat na místo, kde to potřebuješ.
Např. pro formuláře to může vypadat takto: https://doc.nette.org/…s/form-reuse
- CZechBoY
- Člen | 3608
Přečti si vlákno o závislostech modelů, řeší se tam věci, které by tě mohly zajímat :-)