Rozšírenie metódy v Presentry
- sucho
- Člen | 57
Zdravím mám CMS vyskladané z Modulov vo Vendore
v App priečinku by som chcel rozširovať/preťažovať súbory ktoré sú odlišné pre ďalšie projekty
pre doplnenie funkcie do class existuje extensionMethod
ale čo ak potrebujem doplniť nejakú premenu alebo zmeniť
template
v renderDefault() aby som nemusel preťažovať celý render alebo
celý presenter
samozrejme extends a parent::renderDefault() by to vyriešil
ale ak sa tam posielajú funkcie z iných Modulov tak to nieje asi
najlepšie
máte nejaký best practice?
- Martk
- Člen | 661
Nevím, jestli tohle řešení je best practise, ale vytvořím se nový presenter, který implementuje rozhraní a rozšiřuje základní presenter. FactoryCallback se pokusí nalézt rozšířený presenter, pokud nenajde, tak vrátí normální presenter. Všechno to mám napsané, pokud by byl zájem můžu poskytnout kód na gitu, zabezpečení přímého volání extend presenteru mám.
Vypadá to celé asi takto:
class DashboardExtendPresenter extends DashboardPresenter implements IExtendPresenter {
}
class DashboardPresenter extends BasePresenter {
}
- Jiří Nápravník
- Člen | 710
@Antik to vypada pekne, funguje pak bez problemu i Router, ktery smeruje na presenter? Treba mam linky na Article:show, a ted bych chtel ten Article rozsirit a mel tedy ArticleExtendPresenter.
- Jiří Nápravník
- Člen | 710
@Antik diky to by mělo resit muj problem. Sice obcas potrebuji i nejakou dalsi routu v tom rozsirenym presenteru, ale tak neni problem si udelat novy presenter mimo:)