Jedna administrace, X frontendů

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

Dobrý den,
řeším teď jeden celkem zajímavý projekt. Klient má rodinu webů (nyní 5 ale do budoucna je možný nárůst) a požaduje správu těchto webů v rámci jedné administrace (objednávky, produkty, obsah atd…). Každý z těchto webů může mít specifické vlastnosti a moduly (sms soutěže, elektronický průvodce, import od různých dodavatelů, atd…). 3 weby jsou celkem dost vytížené a proto bych je rád rozjel na vlastních virtuálních serverech, 2 weby jsou vytížené méně ( < 1000 návštěv za den) a mohou běžet na jednom virtuálním serveru společně. Přemýšlím nad návrhem aplikace a rád bych pro tento projekt zvolil Nette. Pro každý web bych rád využíval společné i unikátní presentery a šablony (například nákupní košík, procházení produktů, detail produktu atd…, jsou stejné). Je možné v nette nějakým způsobem toto zrealizovat? Díky.

plasmo
Člen | 66
+
0
-

Ahoj, nevím jestli je to košér řešení, ale já to řeším takto:

/seacret
- app_domena1
- app_domena2
- app_domena3
- app_admin
- lib

/www (tady mám doménu)

/subdomains
- admin
- sub1
- suy2
- sub3
- …

A pak jen u každé domény navedu cestu na správné app, které obsahuje presentery atd… pro daný web.

Editoval plasmo (20. 10. 2010 13:11)

marau
Člen | 50
+
0
-

Díky za tip,
mohu mít ještě dotaz, jak pro tyto frontendy řešíš například routování? Přemýšlel jsem nad různými bootstrap soubory ale nakonec jsem si vytvořil rozhraní pro třídu, která by se pro každý projekt volala zvlášť (v ní bych měl zapsaná pravidla pro routování, případně možnost upravit další konfigurační proměnné) + jeden hlavní objekt pro obecná pravidla. Tam jsem nakonec narazil na špatné pořadí rout, takže to budu asi řešit ne přímým voláním ale zděděním s možností upravit pořadí rout.

plasmo
Člen | 66
+
0
-

V každé složce app mám soubor bootstrap a v něm pro každý web zvlášť routy :) ted koukám že se mi rozhodilo trošku formátování předchozího příspěvku

marau
Člen | 50
+
0
-

Mně se více líbí řešení, ve kterém se používá pouze jeden bootstrap a mapování na projekty (v tomto případě by se dal každý projekt chápat i jako modul) probíhá až v něm. V klidu si zjistím doménové jméno a podle něj si potřebný projekt namapuji.

marau
Člen | 50
+
0
-

Tak jsem narazil ještě na dva, zásadní, problémy a tím je sdílení knihoven, souborů a databáze.
Pokud bych tento projekt rozjel na jednom dedikovaném serveru a pro každý subprojekt vytvořit virtuální servery (pokud lze docílit rozložení zátěže jinak, rád se přiučím), nedostanu se ke společným knihovnám a budu muset na každém projektu rozjet jedno nette.
Dalším problémem je databáze. Pokud použiji jednu a jeden z projektů mi ji shodí, spadnou i ostatní projekty. Rád bych si ale zachoval komfort jednoduché práce s jednou databází (sdílené produkty, jednoduše řešitelná přístupová práva atp.). Nemá někdo nápad, jak tohle vyřešit? Díky.

srigi
Nette Blogger | 558
+
0
-

marau napsal(a):

Dalším problémem je databáze. Pokud použiji jednu a jeden z projektů mi ji shodí, spadnou i ostatní projekty. Rád bych si ale zachoval komfort jednoduché práce s jednou databází.

No na toto je predsa replikacia. Vseobecne, ak mas cas a zaujimas sa o skalovanie web aplikacii tradicnymi technologiami (Apache, MySQL) pusti si tento podcast a paralelne s nim si otvor to PDFko co je na rovnakej stranke a cele si to vypocuj/prejdi. Je to velmi poucne.

marau
Člen | 50
+
0
-

Super, díky. Projektů mám za sebou již celou řadu ale nikdy to nebylo nic takto složitého. Hned si to jdu pustit.