metódy render()

- kravčo
- Člen | 721
Od metódy IFormRenderer::render() sa očakáva, že vráti
reťazec vykresleného formulára, na rozdiel od
Template::render(), ktorá vypisuje výsledok na výstup. Tiež
Form::render() vypisuje a Html::render() vracia.
Z môjho hlbšieho hrania sa s Template sa mi zafixovalo nasledovné:
*::render() → vykresľuje
*::__toString() → vracia string
a tento „fix“ som aplikoval i na vlastné triedy… no ako zisťujem táto funkcionalita je v rámci Nette nejednotná, je to tak zámerne? Alebo mi opäť uniká pointa?
ps>> vďaka za __toString(TRUE) ;)
Editoval kravco (7. 1. 2009 3:01)

- David Grudl
- Nette Core | 8285
kravco napsal(a):
*::render()→ vykresľuje
*::__toString()→ vracia string
Takhle mi to taky připadá logické.
Od metódy IFormRenderer::render() sa očakáva, že vráti reťazec vykresleného formulára
Jelikož jde o „interní“ záležitost, není změna chování nijak problematická. Nicméně uvnitř třídy ConventionalRenderer je řada metod renderNeco(), kde by změna vhodná nebyla.
Html::render() vracia.
Ale tady by to mohl být problém… Mám chování změnit? Používá někdo metodu render()?

- romansklenar
- Člen | 655
*::render()→ vykresľuje
*::__toString()→ vracia string
Zní to logicky, jsem pro.

- kravčo
- Člen | 721
David Grudl napsal(a):
kravco napsal(a):
Od metódy IFormRenderer::render() sa očakáva, že vráti reťazec vykresleného formulára
Jelikož jde o „interní“ záležitost, není změna chování nijak problematická. Nicméně uvnitř třídy ConventionalRenderer je řada metod renderNeco(), kde by změna vhodná nebyla.
Mne išlo hlavne o IFormRenderer::render(). To ako pomenúva
svoje metódy ConventionalRenderer je iná vec, každopádne
názvoslovie v rámci API by malo byť konzistentné…
aj keď je to interné, pre ľudí s vlastnými renderermi to BC break bude…
Editoval kravco (9. 1. 2009 23:44)

- David Grudl
- Nette Core | 8285
Zatím do toho nebudu šahat. Ve formulářích je potřeba pořešit víc věcí, takže pak bych do vzal všechno najednou.

- David Grudl
- Nette Core | 8285
Docela rád bych znovuotevřel tohle téma. Co myslíte, sjednotit chování metod render() ?