Generátor struktury presenterů aneb další zbytečnost

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Filip Procházka
Moderator | 4668
+
0
-

Zdravím,
navrhuji si tu aplikaci a zjistil jsem že neustále předělávat (dělal jsem to 5x) strukturu presenterů je pěkná otrava! takže jsem si napsal nástroj, který stačí nakrmit a vygeneruje mi hezky moduly a presentery i s templatama. Ano něco jako má plugin pro netbeans, ale hromadné :)

vytvořím si strukturu v JSONu

{
	global : {
		annotations : {
			author : "Filip Procházka <hosiplan@gmail.com>"
		},
		use : ["Nette","Kdyby"],
		template : {
			default : "{block mainContent}\n<h2>hello kitty</h2>\n\n{/block}"
		}
	},
	modules : [
		{
			name : "jmenoModulu"
			presenters : [ // pokud neni definovany BasePresenter tak se sám vytvoří
				{
					name : "jmenoPresenteru",
					parent : "Base", // jméno rodičovské třídy, jako výchozí se přidá vždy base aktuálního presenteru
					parent : "../Base", // dědit od base presenteru rodičovského modulu
					parent : "Kdyby\Presenter\Base", // obsahuje NS, dědí přímo
					params : [
						{ name : "id", persistent : "1" } // takhle se dá přidat persistentní parametr
					]
					actions : [
						{ name : "default" },
						{ name : "dalsiAkce" },
						{
							name : "jinaAkce"
							params : [] // tohle jeste neni dost dobre otestovane, ale melo by to šlapat
						}
					]
				} // , { dalsi presenter }
			],
			modules : [
				// dalsi modul co obsahuje name a volitelne presenters & modules
				// ano, zanořovat se může dokud nezařve fatal maximálního zanoření funkcí
			]
		} // , { dalsi modul }
	]
}

nakrmím generátor a spustím

$gen = new Kdyby\Generator\Presenters;
$gen->structure = json_decode(file_get_contents(APP_DIR . '/structure.json'));
$gen->deploy(APP_DIR);

ano, vyžaduje to zapisování do APP_DIR, ale to je mně osobně jedno, nechám si to vygenerovat a pak zavolám v APP_DIR

$ sudo chown hosiplan:hosiplan -R ./

voala, mám vytvořenu nudnou strukturu a můžu začít programovat :)
například teď jsem si pomocí toho vygeneroval 80 složek a 200 souborů, navíc je paráda, že když si tam něco přidám tak mi to moje soubory nepřemaže, ale jenom doplní ty které chybí

koho to zajímá, si zbytek možností struktury jsonu vyčte z gistu (např hromadná konfigurace) :)

https://gist.github.com/708764

TODO:

  • automatické doplňování presenterů na požadovanou strukturu pomocí reflexe