//EDIT
Článek neodpovídá skutečnostem. Nette moduly jsou stále ve vývoji. Pokračování již brzy.
//EDIT2
Momentálně řeším kde moduly uchovávat
//EDIT3
Aktuální řešení Nette moduly (a vlastní instalátor)
Dnes jsem do svého frameworku Flame přidal několik jednoduchých přesto dost podstatných commits, které vylepšují funkcionalitu základních Nette modulů.
Vize byla jasná - už mě nebavilo stále psát základní části aplikace, jako např. users management pro několik projektů zvlášť. Proto jsem chtěl vytvořit jednoduchý modules management, který mi práci usnadní.
Metoda registerModulesExtension zaregistruje extension modules.
modules: userModule: [%appDir%/UserModule/config/config.neon] settingModule: \Flame\Blog\SettingModule\SettingModule([%appDir%/SettingModule/config/config.neon]) postModule: \Flame\Blog\PostModule\PostModule
Rozšíření modules nabízí volnost syntaxe. Povinný je pouze název modulu.
Každý modul je vlastní extension, což nabízí širokou možnost rozšíření (např. zaregistrovat makra a helpery), který musí být potomek třídy ModuleExtension
Celý tento proces mi dovoluje jednoduše vytvořit aplikaci s následující strukturou:
app - AppModule --- Application --- Backmodule --- FrontModule --- config --- Router - PostModule --- BackModule --- FrontModule --- Entity --- Latte --- Model --- components --- config - SettingModule - UserModule
Konkrétní ukázka na github.com/flame-org/Blog
AppModule je základní modul, který by měla obsahovat každá takhle navržená app, kterou není třeba registrovat do modules extension. Viz bootstrap.php.
Každý modul definuje vlastní smysl v aplikaci, proto není nic jednoduššího než vzít složku UserModule a překopírovat do jiné skvělé aplikace :-)
Plán do budoucna je jasný - nebude dlouho trvat a přestane mě bavit pořád kopírovat jednotlivé moduly, proto chci vytvořit vlastní composer instalátor po vzoru např. juzna/nette-addon-installer, abych se zbavil copy & paste syndromu a vyřešil tak i zároveň dependencis jednotlivých modulů.
Na takto postaveném systému beží i tento bog.
Rád bych také název modules nahradil za addons, aby se to nepletlo s Nette moduly, ačkoliv z nich vlastně vycházejí.
Řešení není konečné a je ještě hodně na čem pracovat, ale myslím, že je to první krůček evoluce. :-)
Přivítám jakékoliv připomínky, názory, či rady v komentářích.