Alternativa k formularom z Nette
- martincohen
- Člen | 14
Prave som vypublikoval clanok o alternativnom formularovom module pre Nette, ktore pouzivam. Nechcem pisat siahodlhe posty sem, kedze nie je pristupny zdrojovy kod, ale velmi ma zaujima co si o tom myslite:
- Honza Kuchař
- Člen | 1662
Zajímavé. Ale i přes to si myslím, že Nette má formuláře vyřešené dobře. ;) Žádné class a tak v presenteru vůbec nepoužívám. Jen definici políček, validace, zpracování. O ostatní se stará šablona. (na to mám vlastní render, který akorát předá pár poměnných do šablony)
- martincohen
- Člen | 14
Mne osobne vadi to, ze validacie ktore napisem cez Nette/Forms vo finale mozem pouzit iba pre HTML formular. Ak vsak chcem zvalidovat nieco ine (POST, alebo JSON), musim spat k staremu dobremu PHP bez cukru. To potrebujem a riesim ja, ak vsak tuto potrebu nemas, nebudem ta nutit to potrebovat. ;)
Editoval martincohen (25. 4. 2010 0:36)
- Honza Kuchař
- Člen | 1662
Mrkni do zrojáků EditableDataGridu, ten validuje úpravy v datagridu skrz validaci formulářů v Nette. A funguje to perfektně.
- martincohen
- Člen | 14
EditableDataGrid je stale ta ista pesnicka: Formular v HTML posiela data komponente ktora ich spracuje. To ze su policka mapovane na stlpce a ze sa to deje cez AJAX je nepodstatne. Nic odlisne od klasickych HTML formularov na tom nevidim.
- Mikulas Dite
- Člen | 756
Zajímavý nápad, ale co se zápisu týče, rozhodně místo fluentu nechci něco na způsob
$form['document'] = new Container;
$form['document']['title'] = new String;
A už vůbec ne js-like
$form['emails'] = new ElasticContainer( function() {
//...
return $prototype;
});
Nette formuláře mi přijdou úplně super! Sice s validací je to trošku jiné kafe, ale tenhle směr se mi moc nelíbí.
Vlastně nejvíc mi vadí, že je tam moc zbytečného kódu: třeba
u definice validací je pole v poli, kde klíče mi IDE neporadí a v něm ještě navíc další magické
klíče. A jejich hodnoty TRUE
atp, jsou jednak zbytečné a
navíc, jednak aby nastavili front-end message, tak by museli být další pole. O dalších kouzelných
indexech v nich ani nemluvě. Nette tohle všechno umí/dělá a navíc to
hezky zabaluje do fluent metod.
- martincohen
- Člen | 14
Nette formuláře mi přijdou úplně super!
Keď ti Nette formuláre prídu v pohode a nemáš s nimi problém, tak totok nie je pre teba. Mohol by som tráviť čas debatou o tom, prečo sú Intoru Forms lepšie, ale to by sme sa navzájom akurát srali (viď Honzo) a to nechceme, či?
Vlastně nejvíc mi vadí, že je tam moc zbytečného kódu: třeba u definice validací je pole v poli, kde klíče mi IDE neporadí a v něm ještě navíc další magické klíče. A jejich hodnoty
TRUE
atp, jsou jednak zbytečné a navíc, jednak aby nastavili front-end message, tak by museli být další pole. O dalších kouzelných indexech v nich ani nemluvě. Nette tohle všechno umí/dělá a navíc to hezky zabaluje do fluent metod.
Citujem Nette dokumentáciu:
$form->addText('age', 'Your age:', 5)
->addRule(Form::FILLED, 'Enter your age')
->addRule(Form::NUMERIC, 'Age must be numeric')
->addRule(Form::RANGE, 'Age must be in range from %d to %d', array(10, 100));
Rozdiel medzi Nette a Intoru Forms je akurát v tom, že Intoru má metódu
validates
a Nette addRule
. A tiež v tom, že moje
príklady ukazujú zväčša ne-fluent variantu s poľom. Konštanty sa
zaviesť môžu, ale pre custom veci aj tak skončíš u kľúčov:
$form = new Form();
$form->addText('name', 'Text:', 10)
->addRule('MyClass::myValidator', 'Value %d is not allowed!', 11)
O nastavovaní messages, o tých zatiaľ reč nebola, takže nebudem rozoberať čo implementované nie jest.
Díky moc za feedback.
Editoval martincohen (26. 4. 2010 11:04)
- Honza Marek
- Člen | 1664
Ten nápad, že v presenteru se naprosto nestarám o vizuální věci včetně hlášek a typů políček, ten je super.