Moduly – adresářová struktura

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

Tohle je možná trochu omývané téma ale šlo by nějakým způsobem udělat
adresářovou strukturu pro moduly takto ?

app/
libs/
modules/admin/modules/sign/

Naposledy vím že so o tomto diskutovalo zde ale obávám se že se od té doby mnoho změnilo.
Mohl by někdo pomoci navrhnout řešení, jaké metody přepsat, nejsem v Nette ještě uplně zběhlí
Používám Nette 2.0 Beta

Děkuji.

VaKvas
Začátečník | 111
+
0
-

Adresarova struktura v Nette je nepovinna…
V dokumentaci je to vse popsane.

djdaca
Člen | 21
+
0
-

VaKvas napsal(a):

Adresarova struktura v Nette je nepovinna…
V dokumentaci je to vse popsane.

Myslím že si nerozumíme, já samozřejmě znám strukturu adresářů nette ale možná bych měl vysvětlit několik věcí:

  • Chci udělat modulární aplikaci a nechci jednotlivé moduly strkat mezi složky s pressentery, modely a šablon, chci je uložit mimo složku app do adresaroveho rootu do samostatné složky modules
  • Nechci aby se ve složce s modulem vyskitoval postfix Module
  • Chci aby složka modules mohla být i v jednotlivých modulech a šlo tudíž udělat i podmoduly, opět jednotlivé moduly nechci rvát mezy pressentery, modely a šablony.

Snad jsem to popsal srozumitelněji.

Filip Procházka
Moderator | 4668
+
0
-

Mě by zajímalo, proč se raději nepodřídit doporučované struktuře. Něco mi říká, že to děláš jenom z rozmaru a nemáš k tomu rozumný důvod. Proč ztrácíš čas s takovými hloupostmi? Co ti tak strašně vadí na současném stavu, že ho nemůžeš vystát? Pokud k těm změnám máš dobrý důvod, tak prosím, směle do toho a klidně ti i poradím všechny změny, ale pochybuji, že nám ten rozumný důvod řekneš.

Víš jaký největší problém na sebe přivoláš? Evidentně se Nette učíš a když něco hodně změníš na takto nestandardní chování, tak se ti budou mnohem hůře odhalovat chyby.

djdaca
Člen | 21
+
0
-

HosipLan napsal(a):

Mě by zajímalo, proč se raději nepodřídit doporučované struktuře. Něco mi říká, že to děláš jenom z rozmaru a nemáš k tomu rozumný důvod. Proč ztrácíš čas s takovými hloupostmi? Co ti tak strašně vadí na současném stavu, že ho nemůžeš vystát? Pokud k těm změnám máš dobrý důvod, tak prosím, směle do toho a klidně ti i poradím všechny změny, ale pochybuji, že nám ten rozumný důvod řekneš.

Víš jaký největší problém na sebe přivoláš? Evidentně se Nette učíš a když něco hodně změníš na takto nestandardní chování, tak se ti budou mnohem hůře odhalovat chyby.

Vadí mi že je to nepřehledné, navrhuji strukturu pro poměrně rozsáhlou administraci na které bude pravděpodobně pracovat více lidí, sekce budou mít různé názvy a hlavně – bude jich hodně, přehlednost složek je tudíž na místě, a při představě že z toho bude sálát v podobě :

joinModule/
lookModule/
models/
opravaModule/
presenters/
prodavacModule/
templates/

Uznej sám je to nepřehledné, proto složka module v každém modulu i podmodulu, co se týče postfixu na něm netrvám ale je podle mě snažší napsat admin než adminModule zvláště když ztratí smysl v momentě kdy budou ve složce modules, jestli budou v rootu nebo v apps je mi v konečném důsledku taky jedno ale je pak snažší pro mě pak pochopit jak by se řešilo CMS s možností modulů

22
Člen | 1478
+
0
-

bych řekl, že to přeháníš minimálně s modulama :-) Mít na každou volovinu modul je ta nepřehlednost imho. Mít 4 úrovně modulů je trochu moc a rovna se to exotice 4 úrovňové menu, které už z principu bude nepřehledné. Ideální jsou 2 úrovně max. app/MainModul/Submodul

Filip Procházka
Moderator | 4668
+
0
-

Tak ještě jednou :) Nette se neorientuje podle toho, v jaké složce máš soubor, najde ho, ať je kde je. O to se stará RobotLoader. Argument „ztrácí smysl když je ve složce“ tudíž neplatí.

A ne, to co jsi uvedl není podle mě nepřehledné

app/
	JoinModule/
		LookModule/
			OpravarModule/
			ProdavacModule/
			models/
			presenters/
			templates/

Tohle mi naopak přijde mnohem přehlednější než tvoje verze.

PS: nauč se prosím používat formátování kódu zde na fóru, lépe se pak bude luštit, co máš na mysli

hAssassin
Člen | 293
+
0
-

@djdaca > taky nevim co na tyhle strukture vidis spatnyho, jde jen o zvyk. A k tomu vyhozeni slozky modules z app, uvedom si, ze vlastne cela slozka app je hlavni modul aplikace, proto jsou logicky slozky s modulama prave v ni.

@HosipLan > jediny problem v tyhle strukture je ten, ze (alespon u me) se to v IDE radi podle abecedy, cili jsou pak promichany slozky s moduly s ostatnima slozkama (viz priklad), ale jak rikam, jde se s tim naucit zit a nedelat si bordel v aplikaci:

AdminModule/
	CmsModule/
	models/
        NewsModule/
	PagesModule/
        presenters/
	SystemModule/
        templates/
	UsersModule/
djdaca
Člen | 21
+
0
-

22 napsal(a):

bych řekl, že to přeháníš minimálně s modulama :-) Mít na každou volovinu modul je ta nepřehlednost imho. Mít 4 úrovně modulů je trochu moc a rovna se to exotice 4 úrovňové menu, které už z principu bude nepřehledné. Ideální jsou 2 úrovně max. app/MainModul/Submodul

Já ale nechci mít 4urovnové moduly, chci jen aby moduly byli uloženy ve složce modules/

Filip Procházka
Moderator | 4668
+
0
-

v takovém případě ale téměř ztrácí význam složka app/ :)

djdaca
Člen | 21
+
0
-

HosipLan napsal(a):

v takovém případě ale téměř ztrácí význam složka app/ :)

Ale jak říkám, klidně bych to do složky app/ dal to mi na tom ani moc nevadí, spíš jsem nad touto složkou přemejšlel když chceš mít CMS a ve složce app/ jakožto základ aplikace a modules/ jakožto různá rozšíření aplikace.

Vadí mi hlavně to míchání jednotlivých modulů mezi složky s pressentery, modely a šablonama

Tahle administrace byla jako modulová myšlena hlavně že každá sekce v administraci = 1 modul, nikam nic neregistrovat jenom nahrát složku, rozšířilo by se menu a přidala další sekce administrace, jestli myslíte že je to blbost a že na tohle bohatě MVC stačí tak se pokusím tuto myšlenku opustit.

nanuqcz
Člen | 822
+
0
-

A co kompromis? Používat složku modules/, ale mít moduly ve složce app/:

app/
  modules/
    sign/
      presenters/
      models/
      templates/
    cms/
      ...
      modules/
        ...
    whatever/
      ...
  presenters/
  models/
  templates/

Pokud dodržíš původní návrh namespace, tahle adresářová struktura ti bude fungovat bez jakýchkoli změn v Nette.

djdaca
Člen | 21
+
0
-

xxxObiWan napsal(a):

A co kompromis? Používat složku modules/, ale mít moduly ve složce app/:

S tím problém nemám :-)

Editoval djdaca (2. 9. 2011 14:31)

22
Člen | 1478
+
0
-

@djdaca: nepleteš si moduly s komponentama/controls?
Ono totiž imho není opravdu potřeba mít tak složitou strukturu, jakou jsi uváděl na začátku.
A proč by jsi měl mít modul v presenteru??
Presenter je podmnožina modulu.

Editoval 22 (2. 9. 2011 14:31)

Filip Procházka
Moderator | 4668
+
0
-

Tohle je můj PresenterFactory, který dělá něco podobného. Musíš přepsat ještě tyhle dvě metody, aby to našlo šablony.

Pokud budeš mít problém, dohledat si zavilosti, tak můžu ještě navést více.

djdaca
Člen | 21
+
0
-

@HosipLan Dekuji moc ale řešení které navrhl xxxObiWan se mi líbí nejvíce.
Díky

Editoval djdaca (2. 9. 2011 17:18)

nanuqcz
Člen | 822
+
0
-

djdaca: u mojeho řešení můžeš narazit na problém s layouty v „nadmodulu“ (což zabezpečuje tenhle cyklus v metodě formatLayoutTemplateFiles()) Kdyžtak napiš a já, nebo někdo jiný tě navede jak to vyřešit (budou to cca 3 řádky kódu :-))