Moduly – adresářová struktura
- djdaca
- Člen | 21
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.
- djdaca
- Člen | 21
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
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
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ů
- Filip Procházka
- Moderator | 4668
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
@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
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/
- djdaca
- Člen | 21
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
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.
- Filip Procházka
- Moderator | 4668
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.
- nanuqcz
- Člen | 822
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 :-))