Adresářová struktura pro rozsáhlý projekt
- David Kregl
- Člen | 52
Dobrý den,
rád bych se na komunitu obrátil s prosbou o radu. Čeká nás vývoj většího projektu a lámeme si hlavu s tím, jak vytvořit správnou adresářovou strukturu pro takový projekt.
Aplikace se bude skládat ze čtyř základních částí, které bude možné spravovat a existovat bude pouze jedna databáze. Na projektu neočekáváme traffic větší, než 1000 uživatelů najednou.
Máme následující návrhy:
- app/ShopModule/FrontModule/*, app/ShopModule/AdminModule/*…
- app/FrontModule/ShopModule/*, app/AdminModule/ShopModule/*…
- app/AdminModule/ShopUsersPresenter.php, app/FrontModule/ShopHomepage.php… (každý presenter bude mít prefix dané části aplikace)
- Každá část aplikace bude samostatný projekt.
Předem děkuji za odpovědi a názory.
Editoval David Kregl (13. 8. 2015 15:05)
- studna
- Člen | 181
Sto lidí, sto chutí. Jednoduše si nad tím ve firmě sedněte a jednotlivé návrhy si odargumentujte. Třeba dojdete k tomu, že nechcete psát absolutní odkazy. A taky nechcete prefixy presenterů. A protože budete chtít dynamicky odkazovat z jedné části aplikace do druhé, tak vyřadíte i čtvrtý bod.
Zbývá tedy návrh č. 2. A nebo vymyslet něco jiného.
- David Kregl
- Člen | 52
Moc děkuji za názor, studno :)! Asi zůstaneme u té dvojky – mně osobně se líbí nejvíc.
- Majkl578
- Moderator | 1364
Spíš bych volil první variantu.
Druhá není zrovna modulární, poněvadž modulem se většinou myslí např.
e-shop, reklamy apod, nikoliv frontend a administrace. (Modul lze – alespoň
teoreticky – vzít a použít v jiné aplikaci. Pokud uvažujeme druhou
variantu, stěží vezmeme administraci a použijeme ji jinde.)
Trojka je cesta do pekel, z toho byste se hodně rychle zbláznili.
Čtyřka by měla smysl u většího systému, kde by spolu jednotlivé části
komunikovaly např. pomocí API/MOM.
Taky je dobré zamyslet se nad tím, jestli mají jednotlivé části sdílet doménovou logiku.
- Tomáš Votruba
- Moderator | 1114
U nás používáme 1. ze stejných důvodů jako píše @Majkl578
Zkoušel jsem i 2. ale nevyhovovalo mi chunkovat dle méně významného klíče.
- enumag
- Člen | 2118
Používám 2. protože ne všechny submoduly AdminModule k sobě mají svůj FrontModule (ale přesto jsou na frontendu někde vidět). Většinou spíše jeden submodul z FrontModule používá data z několika submodulů AdminModule. A když modul přenáším do jiné aplikace tak část co mám v AdminModule sice většinou zůstane beze změn, ale část z FrontModule se stejně píše znova.
Editoval enumag (14. 8. 2015 9:53)
- Jiří Nápravník
- Člen | 710
Používám první metodu, jako tady napsali pánové nade mnou. Pokud chci modul přenést, tak jej překopírují a povolím jeho extension v neonu. A je vyřešeno, nemusím pak pitvat FrontModule, AdminModule a z něj vybírat jen podmoduly.