Akú štruktúru projektu preferujete?

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

Ahojte, prepáčte že otravujem s takou hlupostou ale rád by som sa opýtal aku adresárovú štruktúru preferujete? Ktorá sa vám najlepšie osvedčila pri projektoch?

Rád by som totižto vedel ako k tomu pristupujú aj iný.

Ďakujem za váš čas.

P.S.: Nechcem vedieť ako sa to môže robiť ale ako sa to najlepšie robí konkretne vám. A či používate jednu strukturu bez ohladu na projekt alebo to s každym projektom meníte?

newPOPE
Člen | 648
+
0
-

Vo vseobecnosti kazdy projekt iny. A asi sa tu len dozvies, ze kazdemu to vyhovuje tak ako mu to vyhovuje. To mas asi tak, ze to iste zadanie zakazdym vyriesis inym kodom.

Azathoth
Člen | 495
+
0
-

já to mám tak, jak je to v sandboxu. na některých projektech je složka templates ve složce presenters. ale jinak všechno jako v sandboxu.

enumag
Člen | 2118
+
0
-

Nerad míchám PHP soubory se šablonami, konfiguračními soubory etc., proto zásadně odděluji složky src a templates. Kompletní adresářová struktura vypadá cca takhle (vyházel jsem co nebylo podstatné):

app/
	config/
		config.neon etc.
	locales/
		neon soubory pro Kdyby/Translation
	fixtures/
		yml soubory pro Zenify/DoctrineFixtures (Alice)
	resources/
		less a js soubory které se později minifikují gulpem, zdrojové mám záměrně zde mimo www
	src/
		AdminModule/
			PageModule/
				Bridge/
					DIExtension.php
				Control/
					formuláře, gridy, etc.
				Entity/
					Page.php
				Presenter/
					AddPresenter.php
					DetailPresenter.php
					EditPresenter.php
					ListPresenter.php
					...
				Query/
					query objecty pro Kdyby/Doctrine
				...
		FrontModule/
		Migration/
			vygenerované doctrine migrace
		...
	templates/
		cesta k šabloně kopíruje namespace třídy ke které šablona patří
bower_components/
	bower sem nainstaluje knihovny, gulp je pak odtud tahá a minifikuje
libs/
	src/
	templates/
logs/
node_modules/
	zdrojáky gulpu + jeho doplňků
temp/
tests/
	unit/
	functional/
	acceptance/
	*.suite.yml
www/
	resources/
		compiled/
			sem gulp sype výstupy
	support/
		ckeditor/
		kcfinder/
	upload/
	index.php
	favicon.ico
	...
.gitlab-ci.yml
bower.json
composer.json
package.json
codeception.yml
gulpfile.js
console.php
...

Většina ostatních asi nechává šablony u zdrojáků a asi málokdo používá Codeception / GitLab CI / Gulp (pokud vím tak rozšířenější v téhle komunitě je Nette Tester / Travis CI / Webloader). A ne všichni používají pravidlo „1 akce na presenter“. Jinak to bude asi u všech podobné.

Editoval enumag (10. 7. 2015 20:15)

Šaman
Člen | 2640
+
+3
-

Já mám zase rád u sebe kód i šablonu, někdy dokonce i specializované konfiguráky :)
Hodně záleží na tom, jestli bude šablony spravovat kodér (pak je dobré dát je úplně mimo PHP kód), nebo jestli je upravuji sám (dělám většinou backend) – pak chci mít šablony hned vedle jejich PHP kódu.

Tomáš Votruba
Moderator | 1114
+
0
-

Na současném projektu zkouším tuto strukturu, zaměřenou na modelovou vrstvu.

Zax
Člen | 370
+
+1
-

Šaman napsal(a):

Já mám zase rád u sebe kód i šablonu, někdy dokonce i specializované konfiguráky :)
Hodně záleží na tom, jestli bude šablony spravovat kodér (pak je dobré dát je úplně mimo PHP kód), nebo jestli je upravuji sám (dělám většinou backend) – pak chci mít šablony hned vedle jejich PHP kódu.

Já používám ITemplateLocator, defaultně to bere ze stejný složky (což mám taky radši, než to někde lovit buhvíodkud) a případně to jde kdykoliv změnit :-D A podobně mám vlastně řešený i default configy pro vlastní rozšíření (nerad patlám defaultní nastavení do kódu jako array když to můžu mít pěkně v neonu).

Jinak teď jsme nabrali nového kodéra (Nette neumí, PHP neumí, Git neumí… ale styluje pěkně :-)) a jak jsem tak pozoroval jeho práci, tak jemu je rozhodně fuk, kde ty šablony jsou. Prostě v tom projektu musí být nějaká struktura, aby se s tím dalo pracovat, nezáleží tolik na tom jaká konkrétní struktura to je ;-)