Rozšírenie metódy v Presentry

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
sucho
Člen | 57
+
0
-

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?

CZechBoY
Člen | 3608
+
0
-

Zalezi jestli chces pridat funkcionalitu nebo zmenit.
Pokud zmenit tak zkus render rozdelit do vic funkci.

Martk
Člen | 661
+
0
-

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 {
}
romiix.org
Člen | 343
+
0
-

Vyzerá to zaujímavo, ak môžeš, pridaj odkaz na git ;)

Martk
Člen | 661
+
0
-

@romiix.org , @sucho Git

Jiří Nápravník
Člen | 710
+
0
-

@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.

Martk
Člen | 661
+
0
-

@JiříNápravník Nemusíš ani nesmíš psát routy pro rozšířený presenter, jen pro originální, takže odpověď je ano.

Jiří Nápravník
Člen | 710
+
0
-

@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:)

Martk
Člen | 661
+
0
-

Mělo by stačit všechno dávat na originální presenter a potom jenom doplnit metody v tom rozšířeném presenteru.