DevProTalk

Forumi IT profesionalaca
web development, web design, e-business, SEO


Idite nazad   DevProTalk > Web development i web aplikacije > PHP
Želite da se reklamirate ekskluzivno na ovoj poziciji? Javite se

PHP PHP aplikacije, Smarty, PEAR

Odgovori
 
Alati teme Način prikaza
Staro 28. 11. 2005.   #11
ivanhoe
Ivan Dilber
Sir Write-a-Lot
 
Avatar ivanhoe
 
Datum učlanjenja: 18.10.2005
Lokacija: Bgd
Poruke: 5.320
Hvala: 104
2.344 "Hvala" u 583 poruka
ivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svima
Pošaljite poruku preko Skype™ za ivanhoe
Default

^^ 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..
ivanhoe je offline   Odgovorite uz citat
Staro 28. 11. 2005.   #12
andrej
profesionalac
Qualified
 
Avatar andrej
 
Datum učlanjenja: 05.06.2005
Lokacija: Beograd
Poruke: 131
Hvala: 2
7 "Hvala" u 4 poruka
andrej is on a distinguished road
Pošaljite poruku preko MSN za andrej
Default

Citat:
Originalno napisao ivanhoe
Nedavno sam gledao Cake framework i recimo oni ne implementiraju MVC kako treba, jer kod njih kontroler prikuplja podatke pa ih daje View-u na koriscenje. Takav pristup mnogo direktnije odgovara kombinaciji php + templejt endzine (php je kontroler, a templejti su view), ali to nije onda nije pravilan MVC model. Inace jako puno ljudi na netu potpuno pogresno tvrdi da je to MVC (u masi tutorijala to mozes da procitas) i koliko sam video nekoliko mainstream framework-a koristi bas takvu "nepravilnu" implementaciju..
Nisam gledao Cake i kako su oni to odradili, medjutim to i jeste pravilno, ne po MVC-u, ali po Web MVC-u (Model 2) da.
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).
andrej je offline   Odgovorite uz citat
Staro 29. 11. 2005.   #13
ivanhoe
Ivan Dilber
Sir Write-a-Lot
 
Avatar ivanhoe
 
Datum učlanjenja: 18.10.2005
Lokacija: Bgd
Poruke: 5.320
Hvala: 104
2.344 "Hvala" u 583 poruka
ivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svima
Pošaljite poruku preko Skype™ za ivanhoe
Default

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...)
ivanhoe je offline   Odgovorite uz citat
Staro 29. 11. 2005.   #14
andrej
profesionalac
Qualified
 
Avatar andrej
 
Datum učlanjenja: 05.06.2005
Lokacija: Beograd
Poruke: 131
Hvala: 2
7 "Hvala" u 4 poruka
andrej is on a distinguished road
Pošaljite poruku preko MSN za andrej
Default

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
andrej je offline   Odgovorite uz citat
Staro 30. 11. 2005.   #15
ivanhoe
Ivan Dilber
Sir Write-a-Lot
 
Avatar ivanhoe
 
Datum učlanjenja: 18.10.2005
Lokacija: Bgd
Poruke: 5.320
Hvala: 104
2.344 "Hvala" u 583 poruka
ivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svima
Pošaljite poruku preko Skype™ za ivanhoe
Default

hvala na linku, pogledacu
ivanhoe je offline   Odgovorite uz citat
Staro 19. 06. 2007.   #16
dee
Domagoj Horvat
Expert
 
Avatar dee
 
Datum učlanjenja: 24.07.2006
Lokacija: Zagreb
Poruke: 502
Hvala: 22
10 "Hvala" u 8 poruka
dee is on a distinguished road
Pošaljite ICQ poruku za dee
Default

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
dee je offline   Odgovorite uz citat
Staro 19. 06. 2007.   #17
Ilija Studen
Direktor Kombinata
Invented the damn thing
 
Avatar Ilija Studen
 
Datum učlanjenja: 07.06.2005
Poruke: 2.669
Hvala: 44
119 "Hvala" u 64 poruka
Ilija Studen će postati "faca" uskoroIlija Studen će postati "faca" uskoro
Default

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:
class SomeController {

  function 
index() {
    
$this->smarty->assign('users'Users::findAll());
  }


Gde kasnije u templateu imaš nešto tipa:

PHP kôd:
{if $users}
<
ul>
{foreach 
from=$users item=user}
  <
li>{$user->getUsername()|clean}</li>
{/foreach}
</
ul>
{else}
<
p>No users here</p>
{/if} 
Ilija Studen je offline   Odgovorite uz citat
Staro 19. 06. 2007.   #18
dee
Domagoj Horvat
Expert
 
Avatar dee
 
Datum učlanjenja: 24.07.2006
Lokacija: Zagreb
Poruke: 502
Hvala: 22
10 "Hvala" u 8 poruka
dee is on a distinguished road
Pošaljite ICQ poruku za dee
Default

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
dee je offline   Odgovorite uz citat
Staro 19. 06. 2007.   #19
Ilija Studen
Direktor Kombinata
Invented the damn thing
 
Avatar Ilija Studen
 
Datum učlanjenja: 07.06.2005
Poruke: 2.669
Hvala: 44
119 "Hvala" u 64 poruka
Ilija Studen će postati "faca" uskoroIlija Studen će postati "faca" uskoro
Default

Parče koda bi pomoglo
Ilija Studen je offline   Odgovorite uz citat
Staro 19. 06. 2007.   #20
dee
Domagoj Horvat
Expert
 
Avatar dee
 
Datum učlanjenja: 24.07.2006
Lokacija: Zagreb
Poruke: 502
Hvala: 22
10 "Hvala" u 8 poruka
dee is on a distinguished road
Pošaljite ICQ poruku za dee
Default

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:
Jedno pitanje oko MVC kad je vec krenula prica u tom smeru...

Imam malih nedoumica oko View-a, jer bi mi se jako dopalo da ga skroz zatvorim u templejte endzine (a Kontroler da mi bude u php skripti, pa da budu bas razdvojeni). Ali opet od View-a se ocekuje da on sam trazi od Modela sve podatke koji mu trebaju, a nije mi zgodno da mi se u templejtima pojavlju pozivi funkcija kao moj_model->selektuj_blogove ili nesto slicno, jer one ne prikazuju same podatke nego ih samo spremaju da se prikazu (urade SELECT i vrate rezultate recimo). Ja bih da mi u templejtu bude samo funkcije koje nesto ispisuju, a da se detalji oko komunikacije sa modelom sklone iz templejta. Ali to onda opet znaci da mi se View logika mesa u skripti sa Kontroler logikom.

Kako vi to organizujete?
citam po netu razne primjere, npr onaj koji je vec naveden -> http://www.onlamp.com/pub/a/php/2005...ontroller.html

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());
                              }
gdje u samom dijelu odabira template engine-a nije ogranicen samo na smarty.

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
dee je offline   Odgovorite uz citat
Odgovori



Pravila pisanja
Možete ne započinjati nove teme
Možete ne slati odgovore
Možete ne slati priloge
Možete ne izmeniti svoje poruke
vB kôd je Uključen
Smajliji su Uključen
[IMG] kod je Uključen
HTML kôd je Isključen
Pogledajte forum

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


Vreme je GMT +2. Trenutno vreme je 08:02.


Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.
Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.