Extra rozšíření pro formuláře

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

Rozšíření pro Nette formuláře

GitHub

Features:

  • Tvorba formulářů pomocí Provideru (globální nastavení formulářů na jednom místě)
  • Událost onProcess
  • Tvorba containerů přes tečky
  • Podpora pro doctrine entity
  • Našeptávání pro doplňky i v container

Doplňky pro formuláře

GitHub

Features:

  • Date (js, nojs)
  • Editor (js)
  • Mask (js)
  • Recaptcha (js, nojs)
  • Suggestion, našeptávač (js)
  • Tags

Doctrine formuláře

GitHub

Features:

  • Konvertovat entity na array
  • Konvertování array na entitu

Multiplier

Klonování formulářů

GitHub

Wizard

Krokování formulářů

GitHub

Editoval Antik (1. 8. 2015 15:23)

enumag
Člen | 2118
+
0
-

Seznam featur je hezkej, ale narovinu říkám že se tu knihovnu bojím použít když nemá testy.

Filip Procházka
Moderator | 4668
+
+5
-

Pěkný, ale spíš by bylo lepší kdybys z toho udělal 20 rozšíření, než jedno velké. Umí to moc věcí, než aby se to dalo důvěryhodně používat bez testů.

Ale velká pochvala za to kolik jsi k tomu napsal dokumentace :)

Martk
Člen | 661
+
0
-

@enumag @FilipProcházka Je to jenom ve zkušební fázi, z důvodu, že ještě zatím nejsou udělaný testy (Ty budou doplněny brzy) a abych zjistil zda psát dokumentaci pořádně.

PS: Tu dokumentaci jsem (prozatím) odflákl :).

jakub.barta
Člen | 10
+
+2
-

Napad se mi libi, ale jak uz tu zaznelo – chtelo by to testy a rozpad do x mensich repozitaru

Martk
Člen | 661
+
+2
-

Přidány testy, opraveny popř. přidány věci. Budu rád za každý nápad jak si ulehčit nebo zpříjemnit práci s formuláři. Rozhodně s přidávání testu a s úpravami budu pokračovat.

enumag
Člen | 2118
+
+1
-

Nice, konečně někdo kdo taky používá Codeception. :-)

Máš tam poměrně dost client-side souborů a ne u všech je jasné k čemu slouží. Např. potřebuje Date nějaké javascripty?

EDIT:

Aha, ono to jde vyčíst z https://github.com/…ientSide.php.

Mohl bys z toho udělat composer package prosím? Rád bych to vyzkoušel.

Editoval enumag (25. 6. 2015 15:37)

Martk
Člen | 661
+
0
-

@enumag Nahozeno.

composer require webchemistry/forms:@dev

Ty client-side soubory jsou dobrovolné, můžeš je vyhodit nebo registrovat svoje. Date zatím ještě nepotřebuje žádné javascripty, přemýšlím, že udělám i javascript verzi.

Martk
Člen | 661
+
+2
-

Po dlouhém rozhodování jsem to zjednodušil a rozdělil do více repositářů.

Provider + rozšíření formuláře
Komponenty
Multiplier (Vyžaduje první rozšíření)
Doctrine formuláře
Wizard (Vyžaduje první rozšíření)
Rozšíření pro NetteForms.js

enumag
Člen | 2118
+
+1
-

@Antik Není to špatné, ale chtělo by to v některých ohledech posunout na vyšší úroveň. Namátkou:

  1. composer.json nemá require a require-dev sekce
  2. místo classmap by bylo lepší použít PSR-4
  3. spouštění testů přes travis
  4. lepší coding style + jeho automatická kontrola
  5. založit na GitHubu organizaci webchemistry
  6. readme apod. by měly být anglicky, Date by neměl mít jako výchozí formát datumu ten český
  7. validace že datum je validní máš špatně (hlavně z hlediska možnosti překladu zprávy, není to nette-way)
  8. působilo by mnohem důvěryhodněji kdybys vystupoval pod svým pravým jménem (teď na tebe nemohu nikde najít ani e-mail natož kdo vlastně jsi – původně jsem ti tyhle návrhy chtěl poslat soukromě)

Kromě posledního bodu jsem schopen a ochoten ti se vším píchnout jestli chceš.

Editoval enumag (10. 8. 2015 14:17)

David Grudl
Nette Core | 8218
+
0
-

místo classmap by bylo lepší použít PSR-4

Proč to dělat jednoduše, když to jde složitě? ;-)

enumag
Člen | 2118
+
0
-

David Grudl napsal(a):

místo classmap by bylo lepší použít PSR-4

Proč to dělat jednoduše, když to jde složitě? ;-)

http://stackoverflow.com/…ually-faster

Pozn. zrovna classmap vs PSR-4 je nepodstatný detail. Osobně preferuji PSR-4 ale nemám potřebu to nikomu vnucovat.

Editoval enumag (10. 8. 2015 16:24)

David Matějka
Moderator | 6445
+
0
-

@DavidGrudl jj taky nechapu, proc nekdo pouziva slozite classmap, kdyz staci jednoduse pouzit psr-4… :P

Oli
Člen | 1215
+
0
-

@DavidGrudl měl jsem všude (a stále mám) classmap. To ale znemožňuje/dělá nepohodlným vývoj balíčků. Po přečtení pohodlný vývoj composer balíčků jsem taky začal předělávat na PSR-4. :-)

Uznávám ale, že classmap je nejjednodušší způsob.

Martk
Člen | 661
+
0
-

@enumag Díky za seznam věcí co mám vylepšit (kritiku neodsuzuji), určitě se na ně podívám a nahodím ASAP. O radu si napíšu, až si opravdu vědět rady nebudu a nikde na netu nebude ani zmínka o problematice, ale díky ;).

S tím PSR-4 máte pravdu, do teď jsem neviděl rozdíl, ale otevřeli jste mi oči. Ještě jsem hold na začátku s učením a mám co dohánět.

enumag
Člen | 2118
+
0
-

@Antik Není zač. Vyber si z toho co libo. Psal jsem to ve smyslu „takhle bych to udělal já“, ale rozhodni se sám co se ti líbí.

K bodu 7 – podívej se jak je udělaná validace selectu v Nette. Jako hodnotu té konstanty použij Class::staticFunctionValidator, ta magická syntaxe co používá Nette nejde použít (afaik).

Editoval enumag (10. 8. 2015 17:46)

Tomáš Jacík
Člen | 147
+
0
-

@Antik To je skvělá práce a rád bych to začal používat. Ocenil bych ale trochu lepší dokumentaci. Něco málo jsi tady popsal, ale třeba ta tečková notace je nejasná – co to umí a co už ne? Zda ten container je Nette\Forms\Container nebo co vlastně a takové essential věci, abych věděl, co to vlastně tvoří a nemusel koukat do kódu.

Martk
Člen | 661
+
0
-

@TomášJacík Umí to jenom přidávat/upravovat containery přes tečky. Vrací to WebChemistry\Forms\Container s potomkem Nette\Forms\Container.

Místo:

$container = $form->addContainer('container');

$container->addText('text');

$container->addTextArea('textarea');

Stačí napsat:

$form->addText('container.text');
$form->addTextArea('container.textarea');

Mazání komponent přes tečky bych nahodil příště.

PS: Tu dokumentaci budu muset opravdu doplnit.