PDA

View Full Version : MVC strukturiranje web aplikacija


dee
23-06-2007, 13:44
Nisam primjetio je li vec diskutirano o ovome, ako jest, molim nekoga da stavi link.

Namjera mi je bila da ovdje prodiskutiramo o nacinima gradjenja aplikacije uzimajuci u obzir MVC pattern.

Primjer: Imate aplikaciju koja sadrzi odredjeni broj modula od kojih svaki radi nesto. MVC logika nalaze da svaki modul u sebi sadrzi dio controllera bitnog za handle onih actiona za koje je taj modul zaduzen. Takodjer, svaki modul, naravno, sadrzi model&view. Iznad svih controllera, postoji jedan glavni koji prima akcije i preusmjerava konkretnu akciju controlleru konkretnog modela.

Mogucih pristupa je vise:

- prilikom instalacije, svaki model se registrira za odredjene akcije i one se cuvaju u bazi. npr: modul x registrira se za akciju 'print_items'. u bazi/fajlu postoji lista svih akcija i pripadajucih controllera zaduzenih za nju.
- prilikom samog rada u aplikaciji, stalno se prenosi controller zaduzen za neku akciju. npr svaki link sadrzi ?controller=x&action=y
- u nekon config fajlu globalni array sa action&controller parovima
.
.
.


zanimaju me komentari, pogledi, iskustva, praksa kako vi to radite u konkretnim situacijama...

gog
25-06-2007, 11:21
Zašto ti treba točno popis svih akcija od kontrolera u bazi?

Baci oko na Zend Framework...

dee
25-06-2007, 11:29
pustimo frameworks po strani za časak, ne ljubim ih bas :)

ne kazem da mi treba u bazi, samo razmisljam na glas i zanima me kako to sami inace rjesavate. gdje god da stoji popis actiona, dakle bilo u bazi, flat file-u ili se generira global array on the fly, dobro ih je imat tako odvojene jer svaki modul time postaje potpuno neovisan. jednom napises core i nemas vise sta pipat po njemu, samo pises gotove module radeci samo npr. extend neke apstraktne Controller klase.

s tim da, kazem, ostaje pitanje sta je najjednostavnije i najpametnije jer recimo, citat iz baze pri svakom requestu nesto sto se mijenja prilicno rijetko i nije neko pametno trosenje vremena. s druge strane, citanje ili inicijalizacija Controllera svakog modula i registracija akcija pri svakom requestu isto nije nesto mudro jer sa npr. 10 modula otvoris 10 fajlova a trebaju npr 2. to moze bit idealan slucaj za primjenu cache-a. uglavnom, mogucih pristupa je puno, mene eto zanimaju iskustva drugih...

rockerx
03-07-2007, 12:34
pogledaj kako to radi cakephp:

nesto.com/vijesti/pregled/12/neki-naslov

vijesti = kontroler "vijesti"
pregled = metoda "pregled" unutar kontrolera "vijesti"
12 - parametar za metodu "pregled"

eventualno napravis ruter kojim ce eksplicitno povezati kontroler-metod-sta vec, ako ti treba i drugacija organizacija u nekim slucajevima.

ako se neko "igra" sa url-om i pozove metodu/kontroler koji ne postoji, printas 404 :)

meni se jako svidja ovakav pristup i na njemu sam zasnovao "moj framework" - za licne potrebe. cake mi vec ide na zivce, ja volim svoje :)