Jak máte kód rozdělený do modulů?

před 10 dny

joe
Člen | 263
+
0
-

Ahoj,

vrátil jsem se k jednomu svému projektu, kde mám kód rozdělený hezky do jednotlivých modulů, možná ale až moc :-) Mám totiž například namespace app/Module/Member/Front a na této úrovni mi začínají presentery (pak to je dále členěné třeba na formuláře, komponenty, atd., o úroveň výš je „Admin“).

Super je, že mám na celý web jenom dvě routy a URL adresy mám tak, jak chci. Co mi ale hrozně vadí je, že mám tolik „Default“ presenterů, kolik je modulů a ještě víc souborů default.latte :-) takže z tohohle pohledu se v tom nedá vůbec vyznat, otázka je, co s tím?

Přejmenovat Default presentery podle názvu modulu? Budou mi pak stačit jenom dvě routy? (Možná přepisovat výchozí presenter podle názvu modulu?) Měl byste pro mě někdo nějaký tip či inspiraci, jak (třeba jinak) to řešit?

Díky moc.

Editoval joe (16. 5. 4:59)

před 10 dny

HonzaN
Člen | 57
+
+3
-

Nepodřizuj strukturu modulů tvaru požadovaného URL, k tomu slouží router.

Komponenty a formuláře je obecně možné používat napříč moduly, takže bych je doporučoval držet jinde.

před 10 dny

CZechBoY
Člen | 3540
+
+2
-

Taky nemusi byt kazda slozka hned novy Nette modul…

před 10 dny

joe
Člen | 263
+
0
-

HonzaN: Z ceho usuzujes, ze podrizuju strukturu pozadovane URL? Ja jen nechtel mit pro kazdy takovy modul routu.

Ja ten modul tehda pojal tak, ze by to byl treba Git submodul (ano, i ted se mi vic libi Git submodul nez balicek pridany pres composer). Tzn. napriklad modul “Clen” / “Member”, kde bude zakladni prace s uzivatelama, od registrace, prihlaseni, vypis uzivatelu, jejich formulare… a i ted po letech mi to prijde jako spravna myslenka, kdy za pomoci jenom dvou rout ziskam funkcni vsechny moduly na prijemne a pro me logicke adrese (uzivatele a uzivatele/243-nick).

Takovy modul pak jednoduse prenesu do jineho projektu, aktualizuju a bude fungovat. Zkusil jsem to resit pomoci globalnich filtru a zprovoznil jsem to, jenom “nevyhoda” pri tvoreni odkazu na vstupni presenter modulu je, ze jsou ve tvaru :Member:Member:

před 10 dny

F.Vesely
Člen | 344
+
0
-

Ja jedu oddeleny Model od UI, takze mam App\Model\Members, App\UI\Front\Members a App\UI\Admin\Members.

Taky jsem chtel mit App\Members a pod tim Model a UI s tim, ze z toho budu mit balicek. Ale proste v zadnem projektu to neni nikdy stejne, nekdo tam chce mit email, nekdo nick, atd.

Front je pak u kazdyho projektu uplne jinej, treba na Homepage jsou vetsinou data ze 3 a vice modulu (Aktuality, Ankety, Produkty, atd.) a kam bych to asi tak mel zaradit?

před 10 dny

joe
Člen | 263
+
0
-

F.Vesely

To máš pravdu, že častokrát to není stejné, pokud se tvoří hodně projektů. Taky jsem pracoval na místech, kde každý projekt byl trochu jinak. Ale řešil bych to tak, že existuje nějaký základ, z toho se vyjde (a jestli je to potřeba upravit, tak to buď bude napsané tak, že mi to umožní změny a nebo to nebude zpětně kompatibilní).

Já se pak v projektu líp orientuju a hned vidím, co kam patří.

HonzaN
To, že mám komponenty a formuláře v různých modulech mi přece nebrání je použít v jiných, vůbec tím limitován nejsem.

Jaké jiné řešení bys tedy doporučil?

Pokud bych chtěl například:

  • UserPresenter – URL /uzivatele
  • UserPresenter – URL /uzivatele/123-nick
  • [User]RegistrationPresenter – URL /uzivatele/registrace

před 6 dny

vladimir.biro
Člen | 108
+
0
-

Ja mam treba u klasickeho webu, jako treba eshop s administraci frontend delany primo, jakoby bez modulu …

$shop = new RouteList()

… a Administraci pak jako modul …

$backend = new RouteList(‚Admin‘);

… podle toho mam i adresarovou sturkturu.

Delam to tak jednoduse proto, ze kdyz jsem mel modul eshop a modul admin, tak jsem to tak mel i rozdelene do adresaru (co je teda pravda ze asi byt nemusi), a pak jsem se musel hluboko preklikavat, co nemam moc rad.

V modulu Admin mam pak jen Components + Presenters a v nem Templates

před 5 dny

Zdeno1981
Člen | 88
+
0
-

Ahoj @vladimirbiro,

jak píše @CZechBoY a @joe

Mám udělaný pouze základ projektu, kde mám 2 základní moduly Front a Backend a podle potřeb to rozšiřují a pokud to není nutné tak nevytvářím zbytečně další adresáře…

Kdysi jsem měl něco podobného, každý modul jsem měl zvlášť a v něm vše co potřebuje, co mě na tom nejvíce štvalo bylo to hluboké rozklikávání, dlouhý strom adresářů a nepřehlednost, tak jsem si udělal jen dva základní moduly, 2 routy a namespace u modulů mám jen Module/Front, Module/Admin. Vše má své výhody a nevýhody a záleží hlavně na tom, jak to bude vyhovovat tobě.

alternativní text

před 5 dny

vladimir.biro
Člen | 108
+
0
-

Zdeno1981 napsal(a):

Ahoj @vladimirbiro,

jak píše @CZechBoY a @joe

Mám udělaný pouze základ projektu, kde mám 2 základní moduly Front a Backend a podle potřeb to rozšiřují a pokud to není nutné tak nevytvářím zbytečně další adresáře…

Kdysi jsem měl něco podobného, každý modul jsem měl zvlášť a v něm vše co potřebuje, co mě na tom nejvíce štvalo bylo to hluboké rozklikávání, dlouhý strom adresářů a nepřehlednost, tak jsem si udělal jen dva základní moduly, 2 routy a namespace u modulů mám jen Module/Front, Module/Admin. Vše má své výhody a nevýhody a záleží hlavně na tom, jak to bude vyhovovat tobě.

alternativní text

Takhle jsem to taky delaval, ale pak me stvalo, tak jsem zacal pouzivat tuhle strukturu:
https://prnt.sc/skv2cp

Hlavni web je hned v app a admin je ve vlastnim adresari

před 5 dny

Zdeno1981
Člen | 88
+
0
-

jasně, proč ne, jen si dej pozor na velké názvy adresářů pokud k ním zadáváš cestu. Vzpomínám na kolegu, který vyvíjel na windowsu a po přesunu projektu na linux mu to nenašlo cesty k šablonám od komponent a docela s tím bojoval :)

před 5 dny

joe
Člen | 263
+
0
-

Zdeno1981

Velké názvy adresářů jsou správně – PSR 4 :)

Díky, ono má všechno svá pro a proti, prakticky se vůbec neproklikávám nikam, na otvírání souboru používám zkratku v IDE.

před 5 dny

vladimir.biro
Člen | 108
+
0
-

Zdeno1981 napsal(a):

jasně, proč ne, jen si dej pozor na velké názvy adresářů pokud k ním zadáváš cestu. Vzpomínám na kolegu, který vyvíjel na windowsu a po přesunu projektu na linux mu to nenašlo cesty k šablonám od komponent a docela s tím bojoval :)

Ja s tim problem nemam … Vyvyjim na MAC a na hostingu jsem zatim probelm nemel, ale jednou po mne kolega, ktery bezi na linuxe delal na projektu a dost nadaval no :D

před 5 dny

vladimir.biro
Člen | 108
+
0
-

joe napsal(a):

Zdeno1981

Velké názvy adresářů jsou správně – PSR 4 :)

Díky, ono má všechno svá pro a proti, prakticky se vůbec neproklikávám nikam, na otvírání souboru používám zkratku v IDE.

Ano, to je pravda … tiez som si navykol na tento system. PHP Storm ma vela roznych premerovavacov na konktrentu fuknciu.