Scaffold, CRUD, generator

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

Zdravim, je v/pro Nette nejaky CRUD generator? Nemyslim tim CLI aplikaci, kde si vytvarim tabulky stylem description:text active:bool=TRUE apod.. (tyhle praseciny nechci; aplikace ale jinak pekna) ale aplikace (byt treba v CLI), ktera si nacte tabulky z DB, nabidne mi co chci vygenerovat, navolim a pouzivam? Idealne vcetne validacnich pravidel podle sloupcu v DB tabulce :)

Diky

Editoval jaavehi (7. 10. 2011 19:49)

Filip Procházka
Moderator | 4668
+
0
-

Nic takového v Nette není. Je tu ovšem pár projektů, které dělali něco podobného.

Google mi napovídá na „nette scaffolding“:

https://forum.nette.org/…i-presentery
https://gist.github.com/803051

a pár dalších…

jaavehi
Člen | 2
+
0
-

Diky, ale googlit umim :)

Tohle jsou totiz prave ty, ktere jsou svym zpusobem na nic. Hledam neco inteligentniho, co generuje na zaklade DB schema. Na cisty PHP toho je relativne dost a dokonce i nekolik frameworku to ma…

Jan Endel
Člen | 1016
+
0
-

Osobně jedu opačně, v Doctrine 2 si vytvořím entity a na základě nich mi doctrina vygeneruje databázi – ideální pro verzování.

Mikulas Dite
Člen | 756
+
0
-

Scaffold pro Nette není (a troufám si říct že ani nebude). Já jsem si chtěl jeden vytvořit, ale sám sem cítil, že to není úplně správná cesta. Co si budem povídat, je to vlastně jenom převlečený copy paste a dá se to řešit jinak (makra v IDE nebo inheritance v OOP).

Půlka komunity to stejně nepoužije a ta druhá taky používá Doctrine.

Tharos
Člen | 1030
+
0
-

+1 Mikuláš /ostatním samozřejmě taky :)/.

Scaffolding pro Nette doposud není, což je fakt, který se dá vyložit i tak, že prostě ani není nijak extra zapotřebí. Generovaný kód je možná příjemná věc (i když já osobně nevím nevím…), ale šikovný návrh, který řeší to samé a jako vedlejší efekt obsahuje o řád méně kódu, je ještě lepší. :)

Mně se na klasické CRUD věci velmi osvědčila kombinace jistého (ehm, svého…) datagridu a systému „šablonových“ presenterů (přímo podle template method vzoru). Troufám si tvrdit, že v takové struktuře připravím CRUD rozhraní nad nějakou tabulkou bez vazeb klidně i rychleji, než s pomocí nějakého generátoru. :)

mkoubik
Člen | 728
+
0
-

U scaffoldingu nastává problém když vygeneruješ kód, upravíš ho a pak to chceš třeba vygenerovat z upravený tabulky. Pak musíš hledat commit, kdes to generoval, vytvářet větev, rebasovat/mergeovat, nic příjemnýho. Mě se osvedčila kombinace Doctrine 2, Doctrine migrations, dobrého návrhu a znovupoužitelných komponent.

Patrik Votoček
Člen | 2221
+
0
-

Pod vlivem Rails a Djanga se i do PHP šíří generátory kódu, co ti ty části, které píšeš pořád dokola, vygenerují za tebe. Chystáš něco takového do Nette?
Nette se bez generátorů obejde, protože kombinuje komponentový a MVC přístup. Takže to, co se píše pořád dokola, a co ti ty generátory generují, si můžeš vytvořit jako komponentu. Mně nepřipadá jako správné dělat generátor, protože si říkám, že v okamžiku, kdy potřebuju generovat spoustu podobného kódu, tak na to asi nejdu úplně dobře. Mám ale v plánu do Nette dát komponentu pro administraci. Stáhneš si Nette, vytvoříš projekt, a budeš mít připravenou administraci. Nechci jít cestou generování kódu, ale cestou komponenty, která tohle vyřeší.

viz.: http://zdrojak.root.cz/…i-uzivatele/

Tharos
Člen | 1030
+
0
-

K tomu, na co odkazuje Vrták, jsem se chtěl zeptat, zda jste někdo skutečně zkoušeli opravdu celý CRUD zabalit do vhodně konfigurovatelné komponenty, respektive do několika komponent? Jak to šlo a k jakým postřehům jste dospěli?

V mých experimentech mi trochu chyběly pohledy (vím, že to lze u komponent různými oklikami řešit) a i pár dalších drobností. Prostě se mi z hlediska kódu a elegance řešení založené na abstraktních presenterech líbí více, než na komponentách. Maximálně mě ale zajímá, k jakým zkušenostem v této věci dospěli jiní.

Editoval Tharos (10. 10. 2011 0:37)

Patrik Votoček
Člen | 2221
+
0
-

Taky se mě více zamlouvá myšlenka abstraktních presenterů.

Co vím tak nejdále se s nějakým automatizovaným CRUDem dostal Panda https://twitter.com/…788139491328. A pokud jsem to dobře pochopil tak vpodstatě „generovaný“ / automatizovaný CRUD je věc o kterou se snaží LigthBulb (Žárovka).