|
PHP PHP aplikacije, Smarty, PEAR |
|
Alati teme | Način prikaza |
28. 11. 2005. | #11 |
Ivan Dilber
Sir Write-a-Lot
|
^^ niko ne kaze da sve mora po knjizi, ja sam uvek za prakticarski pristup...ali mislim da je glupo hvaliti se da radis po nekom standardizovanom teorijskom principu, a onda ga odraditi na svoju ruku (govorim o Cake). Nisu pametni ljudi smisljali 20 godina MVC takav kakav je, bez razloga..
|
28. 11. 2005. | #12 | |
profesionalac
Qualified
|
Citat:
Kao sto gore neko rece, nije bilo moguce preslikati original MVC (Smalltalk) u web okruzenje (model i controller su na serveru, a view na client-u), pa su nacinjene neke korekcije, odn. model ne obavestava vise view da je doslo do promene stanja, vec to ide preko controllera (Action-a). |
|
29. 11. 2005. | #13 |
Ivan Dilber
Sir Write-a-Lot
|
moje znanje o MVC i Modelu 2 je pomalo sa faxa, iz par knjiga o Javi i par clanaka sa Wikipedie, tako da ne mogu da tvrdim da sam neki poseban poznavalac niti sam se udubljivao u temu do sad, pa sto rece Djole: ako su mene lagalili, lazem i ja vas
moguce da oni nisu lepo objasnili (clanak na wikipediji bas koristi web kao primer, ali objasnjenje MVC je klasicno, isto kao po knigama, znaci View poziva Model, Kontroler poziva i Model i View, Model cuti i smrdi (i registruje callbacks po potrebi)) Jedna opaskica: view nije na clientu, odnosno bitan deo (logika) nije, vec je u php-u ili Smartiju ili kako vec odlucis da generises html...ako ne racunamo na javascript, naravno... jako me zanimaju prakticne posledice upotrebe jedne, odnosno druge varijante MVC-a, ako je neko potkovan teorijski i prakticno oko ovoga...Sta je po vama flexibilnije, lakse i brze za napraviti, i naravno efikasnije ? (mislim da je to dobar redosled prioriteta, bar za mene...) |
29. 11. 2005. | #14 |
profesionalac
Qualified
|
View treba samo da prikaze podatke korisniku i ne petljati ga u logic, a na controller-u je (Model 2) da mu dostavi te podatke ("Controller pushes information into the View"), koje ce ovaj da sklopi i da browseru.
Znaci view nije neki objekat koji ce biti obavesten o promeni(recimo, tesko ili nemoguce da bi izveo Observer obrazac), vec strana (template) koja se iznova renderuje nakon zahteva klijenta. (u tom smislu je na klijentu, na drugom racunaru). Sad tu dolaze i novi koncepti, kako bi web development lici sto vise na standardni razvoj aplikacija, takozvani "component-based frameworks" - JSF, ASP.NET, Tapestry... i tu se koristi princip "View pulls information out of the Model". Evo i link na chapter iz jedne knjige: http://jerry.cs.uiuc.edu/~plop/plop2...hardson0_3.pdf |
30. 11. 2005. | #15 |
Ivan Dilber
Sir Write-a-Lot
|
hvala na linku, pogledacu
|
19. 06. 2007. | #16 |
Domagoj Horvat
Expert
|
malo iz formalina, ali naisao sam na detalj koji bih volio razjasnit.
sto rece ivanhoe, na raznim mjestima razne definicije i pogledi. jel se iskristaliziralo na kraju: kako se generira view? da li view 'zove' model za podacima vezanim uz prezentaciju ili model dodjeljuje vrijednosti npr. template sistemu i time view postaje potpuno neovisan? konkretno, recimo da imamo smarty kao template engine, nije li logicno da svaki modul u svojem model dijelu radi smarty->assign() njemu bitnih varijabli + sto eventualno odredjuje koji glavni template ce se koristiti, controller radi finalni smarty->display() i time view ostaje potpuno pasivan?
__________________
postoje ludosti bez kojih je nemoguce ljudsko dostojanstvo |
19. 06. 2007. | #17 |
Direktor Kombinata
Invented the damn thing
Datum učlanjenja: 07.06.2005
Poruke: 2.669
Hvala: 44
119 "Hvala" u 64 poruka
|
Kontroler je spona između viewova i modela. Ako imaš $smarty->assign() u modelu nešto ne radiš kako treba
Evo ga jedan konkretan primer gde mislim da je odvajanje dobro urađeno: PHP kôd:
PHP kôd:
|
19. 06. 2007. | #18 |
Domagoj Horvat
Expert
|
sorry, neprecizno pricam...
u sustini controller ima funkciju/objekt koji radi smarty->assign() na osnovi varijabli dobivenih od modela, jasno. to za ovu opciju potpuno pasivnog view-a. dakle, to je pravilno s aspekta MVC?
__________________
postoje ludosti bez kojih je nemoguce ljudsko dostojanstvo |
19. 06. 2007. | #19 |
Direktor Kombinata
Invented the damn thing
Datum učlanjenja: 07.06.2005
Poruke: 2.669
Hvala: 44
119 "Hvala" u 64 poruka
|
Parče koda bi pomoglo
|
19. 06. 2007. | #20 | |
Domagoj Horvat
Expert
|
nema konkretnog koda jer ni ne pitam u vezi niceg konkretnog sto vec razvijam, tek sam u fazi smisljanja sheme u glavi
a u tom smisljanju, javila mi se upravo ona dilema koju je ivanhoe ranije ovdje opisao: Citat:
covjek za prezentaciju u kontroleru koristi: Kôd:
$presenter = FR_Presenter::factory( $instance->presenter,$instance ); if (!PEAR::isError($presenter)) { $presenter->display(); } else { die($presenter->getMessage()); } ali sad vec sirimo pricu mozda malo previse. sustina mog pitanja je bilo bas ovo (boldano) iz ivanhoe-ovog citata: pita li view od modela podatke ili je controller taj koji na osnovi rezultata modela salje podatke viewu? prosto kako je po PSu?
__________________
postoje ludosti bez kojih je nemoguce ljudsko dostojanstvo |
|
|
|
Slične teme | ||||
Tema | Početna poruka teme | Forum | Odgovori | Poslednja poruka |
TOP 20 MySQL Best Practices | dinke | SQL baze podataka - Sponzor: Baze-Podataka.net | 11 | 26. 11. 2009. 10:26 |
PHP multilanguage web - best practices | mb_sa | PHP | 14 | 29. 10. 2009. 12:10 |
[pomoc] Font Embedding, razliciti stilovi na istom textfieldu | MrSteel | Flash | 5 | 11. 08. 2007. 16:09 |
Performance Tuning Best Practices for MySQL | Ilija Studen | SQL baze podataka - Sponzor: Baze-Podataka.net | 1 | 13. 08. 2006. 16:20 |