Vložení proměnných do @layout.latte
- frosty22
- Člen | 373
A jenom pro upřesnění, tak samozřejmě můžeš i do layoutu vložit z action / render … je to vše jeden objekt v property presenteru $template :)
Ale právě abys nemusel duplikovat kod a vkládat stejné proměnné v každé action / render metodě, tak se vkládají v beforeRender, metoda která je volaná před samotný vykreslením.
Vesměs životní cyklus (pořadí volaných metod presenteru při requestu na něj):
- startup()
- action*()
- handle*()
- beforeRender()
- render*()
- afterRender()
- shutdown()
- h4kuna
- Backer | 740
enumag napsal(a):
BasePresenter::beforeRender()
Někde na fóru, kdysi dávno, jsem viděl že je lepší to dávat do BasePresenter::createTemplate().
Když zapomeneš napsat parent::beforeRender() tak si toho hned nemusíš všimnout, ale když zapomeneš parent::createTemplate() tak si toho všimneš okamžitě. Což můžu jedině potvrdit.
Editoval h4kuna (13. 8. 2013 20:25)
- frosty22
- Člen | 373
Tak podle mě si všimneš i u beforeRender rychle, jelikož ti to vyhodí nějaký notice s neexistující proměnnou, leč je tedy pravda, že ti to nemusí hned dojít.
A jinak oproti createTemplate, tak beforeRender má minimálně tu výhodu, že právě nemusíš zavolat parenta, když máš třeba jiný layout pro nějaký „specialní“ presenter.