Nette CRUD generátor (scaffolding)
- Mysteria
- Člen | 797
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. :)