Nette CRUD generátor (scaffolding)

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

Zdravím, zhruba před rokem jsem zde zakládal tohle téma ohledně mé bakalářky na téma CRUD generátoru pro Nette Framework. A jelikož se státnice blíží, tak je taky čas „odprezentovat“ výsledek komunitě.

Ukázka: http://nette-generator.mysty.cz/www/ (pro mazání si prosím přidejte vlastní řádek dat, ať tam vždy něco zůstane)

GitHub: https://github.com/…te-generator

Rychlé shrnutí toho, co to vlastně umí:
Generátor podporuje tři druhy zdrojových dat – MySQL InnoDB s podporou cizích klíčů, MySQL MyISAM s podporou cizích klíčů v případě dodržení Nettích konvencí a Doctrine2 entity (v tomhle případě se pomocí SchemaToolu vygeneruje MySQL InnoDB databáze a pokračuje se s ní). Klasika je výběr tabulek, které ve vygenerované aplikaci půjdou spravovat. Pak je možný vybírat mezi Nette\Database\Table a Doctrine2 modelama pro práci s databází (zde jsem se poprvé střetl s Doctrine2, takže ty modely asi nebudou úplně to pravé ořechové, ale funguje to). Dál máme dvě možnosti jak nakládat s cizíma klíčema při přidávání a úpravách položek. Buď taková ta klasika, kde se místo IDčka zobrazí SELECT pro výběr správné položky nebo rovnou otevření tabulky, do které směřuje cizí klíč a výběr přímo z ní. Volitelně je pak možnost celou aplikaci generovat do nějakého modulu. A to nejlepší nakonec – sada šablon. Ta se vlastně z 99% podílí na konečným výsledku generátoru, protože je v nich možné cokoliv měnit, případně rovnou vytvořit jiné (třeba s lepšíma Doctrine2 modelama), hodit to ke stažení a kdokoliv jinej to pak může použít místo mých šablon. Jinak výchozí sady šablon využívají (mimo jiné) Kdyby\Doctrine, Kdyby\Translation, Kdyby\Replicator a Nextras\secured-links a součástí je i vygenerování přístupových oprávnění na úrovni jednotlivých CRUD operací jak pro celé tabulky tak i jednotlivé sloupce.

Upozornění: Nedoporučuji používat na existující aplikaci, protože se Vám například přegeneruje RouterFactory. Ideální použití vidím jako standalone aplikaci pro administraci něčeho jako v ukázce.

Co se týká tvorby (nebo úpravy) šablon, tak vše podstatné je tady: https://github.com/…templates.md

Diskuze vítána, pozitivní hodnocení budou využita při obhajobě, negativní se pokusím napravit, pokud to bude v mých silách. :)