Nové formuláře

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
_Martin_
Generous Backer | 679
+
0
-

Rád bych otevřel diskuzi, jakým směrem vyvíjet formuláře. David už kdysi přemýšlel o tom, jak oddělit logiku a vzhled. Protože ještě zůstává u návrhu, přicházím taky s jednou myšlenkou.

Napadlo mě to nedávno. Dělal jsem velmi složitý formulář, kde pro mě omezující začlo být i vlastní vykreslování. Tehdy mi došlo, že logika formulářů je až příliš úzce spojená se vzhledem (X)HTML formulářů. Předvedeme si to na jednoduchém příkladu: v čem se liší SelectBox od RadioListu z pohledu logiky? Vybírám přeci jednu hodnotu z možných. Že prý multiple? Jak by se potom lišil od CheckBoxListu?

Čím víc nad tím přemýšlím, tím více mě napadá, že formulář z pohledu logiky by měl mít možnost přidávat prvky typu „jeden z mnoha“, „více z mnoha“, „libovolný“, apod. S ohledem na logiku MVC může být presentační vrstvou třeba xml protokol nějakého veřejného API, export do PDF a pokud to hodně nadsadím, tak i příkazová řádka vzdáleného terminálu. A to vše musí být schopen „formulář“ zpracovat.

Možná se vám to zdá divné, ale nepřibližuje se tím snad „formulář“ ke svému prvotnímu účelu a to k získávání dat? Takový formulář může mít mraky vykreslovacích logik, adaptérů, čehokoliv – a vždy nám do aplikace půjdou data hezky zvalidovaná.

Jen si tak říkám: budou to pak ještě vůbec formuláře?

David Grudl
Nette Core | 8169
+
0
-

Tohle už by asi překročilo praktickou míru abstrakce. Tedy uvažuješ správně, ale presentery a formuláře se v drtivé většině případů budou stejně používat právě v HTML stránce.

_Martin_
Generous Backer | 679
+
0
-

Možná jsem se nechal trochu unést. Nicméně na počátku té myšlenky stála otázka, jak vykreslit RadioList, aby u jedné z položek byl TextInput. Asi jsem jí měl zdůraznit a to ostatní dát jako takový bonus…

Petr Motejlek
Člen | 293
+
0
-

Já s tím celkem souhlasím, že co se architektury týče, tak by bylo hezčí jen říct: očekávám, že uživatel si vybere alespoň jednu z těchto možností, nějak to zařiď, aplikace ;) Něco na pozadí by si zjistilo, jakým protokolem hovoří uživatel (ať už je to XML, HTTP, aj.) a provedlo by to s ním debatu o tom, jakou možnost by si chtěl vybrat. Tohle ale až moc připomíná práci pro nějaký aplikační server, než framework :D.