Alternativa k formularom z Nette

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

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:

http://martincohen.info/…lare-v-nette

Honza Kuchař
Člen | 1662
+
0
-

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
+
0
-

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
+
0
-

Mrkni do zrojáků EditableDataGridu, ten validuje úpravy v datagridu skrz validaci formulářů v Nette. A funguje to perfektně.

martincohen
Člen | 14
+
0
-

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.

hrach
Člen | 1834
+
0
-

Moc se mi to líbí, těším se na vypuštění zdrojáků. Něco takového nette potřebuje, teď jen to ještě protlačit do oficiální distribuce :-)

Mikulas Dite
Člen | 756
+
0
-

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
+
0
-

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)

martincohen
Člen | 14
+
0
-

Aktualizácia šablon v Intoru Forms:

http://martincohen.info/…lare-v-nette

Honza Marek
Člen | 1664
+
0
-

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.