Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Zend Framework i MVC.

[es] :: PHP :: Zend Framework i MVC.

[ Pregleda: 9892 | Odgovora: 17 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

zgas

Član broj: 74613
Poruke: 334
*.ptt.yu.

Sajt: odbrojavanje.com


Profil

icon Zend Framework i MVC.12.09.2007. u 01:44 - pre 152 meseci
Voleo bih kada bi ovo postao podforum PHP Advanced.

Zend Framework pruza vrlo dobre alate za izradu web aplikacije. Medjutim poznato je da je za rad sa frameworkom potrebno vece iskustvo jer je samo programiranje komleksnije zbog MVC nacina rada.

Nasao sam u Zend Frameworku toliko dobre alate i meni neophodne (nezamenjive) da mi je prosto zao da radim bez njega zbog toga sto nemam pozamasno iskustvo u programiranju koje je potrebno za MVC.

Molio bih sve, da pokusamo putem ovog foruma da naucimo da radimo sa Zend framework alatom. Posebno, ako neko iskusan moze da pokusa da nam pojasni kako se vrsi programiranje MVC nacinom.

Mene konkretno za pocetak interesuje, da li je moguce pokrenuti neku php stranicu koja ce iz frameworka koristiti samo alate za pristup bazi, rad sa datumima... a nece koristiti MVC princip projektovanja aplikacije?

Aukcije, www.Odbrojavanje.com
Aukcija može biti osvojena jeftino - za 30 sekundi a 6 dinara!
 
Odgovor na temu

japan

Član broj: 34328
Poruke: 480
*.bvcom.net.



+13 Profil

icon Re: Zend Framework i MVC.12.09.2007. u 02:30 - pre 152 meseci
Citat:
zgas:Nasao sam u Zend Frameworku toliko dobre alate i meni neophodne (nezamenjive) da mi je prosto zao da radim bez njega zbog toga sto nemam pozamasno iskustvo u programiranju koje je potrebno za MVC.


ako shvatis samu MVC ideju i logiku, nista vece iskustvo nego inace ti ne treba, naravno ako poznajes OO programiranje.

Citat:
kako se vrsi programiranje MVC nacinom


vrlo pojednostavljeno, MVC (ModelViewController) logika se svodi na to da od od baze ka prezentaciji koriste tri sloja:

- Model - najnizi sloj - klasa koja reprezentuje strukturu podataka, sadrzi uglavnom metode za SELECT, INSETRT, UPDATE, DELETE

- Controller - srednji sloj - sluzi za obradu i manipulaciju podataka, uglavnom ce pozvati model i na neki nacin obraditi podatke koje mu model servira i pripremiti ih za prosledjivanje view-u, ili ce prihvatiti korisnicki unos, obraditi ga i proslediti model-u, koji ce podatke upisati u bazu, ali moze da vrsi i neke druge interne obrade.

- View - najvisi sloj - prezentacija - koristi podatke dobijene od controller-a, i prosledjuje krajnjem korisniku


Citat:
Mene konkretno za pocetak interesuje, da li je moguce pokrenuti neku php stranicu koja ce iz frameworka koristiti samo alate za pristup bazi, rad sa datumima... a nece koristiti MVC princip projektovanja aplikacije?


za te stvari sluze helper-i, koji su samo skup nekih korisnih funkcija.
 
Odgovor na temu

ppavlovic
Pavlovic Petar
Izvođač radova na sajtovima

Član broj: 4306
Poruke: 139
*.ru
Via: [es] mailing liste

Sajt: www.pavlovicpetar.com


+1 Profil

icon Re: Zend Framework i MVC.12.09.2007. u 03:46 - pre 152 meseci
ZendFramework MVC koncept stil programiranja je samo primena nekoliko klasa za uspostavljanje MVC modela. Ono sto zelim da kazem jeste da apsolutno NE MORAS da koristis MVC kod ZendFramework ako zelis da se posluzis nekom od njegovih klasa. Samo Include-uj potrebnu klasu i teraj. Npr. ovde http://devzone.zend.com/articl...ndars-with-the-Zend-Framework- mozes da vidis primer kako se koristi RSS Feed-ovi.

Inace, ovo http://akrabat.com/zend-framework-tutorial/ je pocetnicki tutorial za ZF.


[Ovu poruku je menjao flylord dana 12.09.2007. u 11:59 GMT+1]
 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Moderator
Član broj: 31848
Poruke: 1791
*.dynamic.sbb.co.yu.

Sajt: norway.dakipro.com


+190 Profil

icon Re: Zend Framework i MVC.12.09.2007. u 08:21 - pre 152 meseci
Kada sam zadnji put radeo sa Zend fw-om, bio je jos u ranoj beta verziji, a ja nisam imao ich iskustva. Samo uz pomoc zvanicne dokumentacije sam mogao da skontam kako raditi uz pomoc mvc-a, bez citanja tutorijala. Koliko sad vidim, za zend fw postoji gomila dobrih tutorijala, tako da ne vidim ni jedan dobar razlog zasto odmah ne bi poceo da radis mvc. Samo pratis tutorijale, odradis par njih samostalno, znaci ne copy-paste, vec pratis sta pise i sam kucas kod. Posle nekog kratkog vremena ces da ukapiras o cemu se tu radi, i kako sve to lici jedno na drugo i treba da izgleda. Posle tih par vezbi, dolazis do dela kad se odusevljavas koliko je koncept dobar i koliko ima smisla, i pocinje odusevljenje gotovim resenjima koje fw pruza. Bolje odmah da se ucis na najbolje nego da gubis vreme pa da experimentises redom sta i kako. pogotovo kad postoji dobra dokumentacija. Ja bi mozda samo u zfw integrisao smarty i koristio njega umesto zendovog View handlera, ali ako mislis da je ovo prekomplikovano za pocetak, cepaj sa full zendom.
 
Odgovor na temu

zgas

Član broj: 74613
Poruke: 334
*.ptt.yu.

Sajt: odbrojavanje.com


Profil

icon Re: Zend Framework i MVC.17.09.2007. u 01:13 - pre 152 meseci
Hvala na ohrabrenjima!

I ja bi ukljucio u zend framework jos samo smarty ali o tome bi kasnije dok resimo samo ovo jedno pitanje - kako koristiti alate iz zendfameworka a ne upustati se za pocetak u MVC koncept.

Prijatelju 'ppavlovic'-u rekao si da se to moze uraditi ako se jednostavno pozove naka klasa iz zendframe worka sa include. Probajuci to video sam da to nije tako jednostavno jer su klase medjusobno veoma povezane sa require i to po nekom PATH sistemu koji ja jos ne poznajem. Zapravo skoro svaka klasa ne radi sama za sebe vec poziva sa require jos klasa iz frame worka, tako da, ako se sa jednostavnim include pozove neka klasa (bez predhodnog podesavanja svega sto treba za framework path) dobije se poruka o gresci:

Npr:
Code:
Warning: require_once(Zend/Loader.php) [function.require-once]: failed to open stream: No such file or directory in D:\htdocs\framework\ZendFramework101\library\Zend\Db.php on line 27

Fatal error: require_once() [function.require]: Failed opening required 'Zend/Loader.php' (include_path='.;C:\php5\pear') in D:\htdocs\framework\ZendFramework101\library\Zend\Db.php on line 27


Voleo bih da znam kako bi se ovo moglo resiti, da se koriste ti alati, a da se ne podesava to, da sve ide preko index.php fajla i ostalo...
Aukcije, www.Odbrojavanje.com
Aukcija može biti osvojena jeftino - za 30 sekundi a 6 dinara!
 
Odgovor na temu

ppavlovic
Pavlovic Petar
Izvođač radova na sajtovima

Član broj: 4306
Poruke: 139
*.ru
Via: [es] mailing liste

Sajt: www.pavlovicpetar.com


+1 Profil

icon Re: Zend Framework i MVC.17.09.2007. u 02:24 - pre 152 meseci
Savet: Pocni da se navikavas na MVC koncept jerbo zlata vredi. Ovako
ti ZendFramework dodje samo kao (zgodan) skup klasa da ti odradi posao.


Problem sa require_once i greskom koju ti javlja:


Code:

Fatal error: require_once() [function.require]: Failed opening required 'Zend/Loader.php' (include_path='.;C:php5pear') in D:htdocsframeworkZendFramework101libraryZendDb.php on line 27



je taj sto ne moze da pronadje fajlove Zend Framework-a u okviru "include_path" promenljive.

Resenje je da dodas putanju do direktorijuma gde ti se nalazi Zend.php:

1) izmenis php.ini i da ti include_path glasi
include_path='.;C:php5pear;c:putanja-do-zend-frameworklibrary'

2) dodas na pocetku fajla

$path = 'c:/putanja-do-zend-framework/library';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
 
Odgovor na temu

zgas

Član broj: 74613
Poruke: 334
*.ptt.yu.

Sajt: odbrojavanje.com


Profil

icon Re: Zend Framework i MVC.17.09.2007. u 09:15 - pre 152 meseci
Dobro, definitivno sam razumeo i od danas cu pokusati da koristim MCV koncept i zend-framework.

Nekoliko pitanja u vezi sa tim. 'japan' je vrlo lepo objasnio MCV koncept gore. Posto imam vec podesen MVC koncept sa direktorijumima i jednostavna osnovni primer, zelim da mi pomognete da to razumem... Pokusacu da vam ga predstavim:

Imam index stranicu index.php koju direktno poziva korisnik sa ovim kodom:
Code:
header('Content-Type: text/html; charset=utf-8');
require_once dirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR . 'application.php';

$zfApp = new ZfApplication;
$zfApp->setEnvironment('staging');
$zfApp->bootstrap();


(Nije mi jesna namena i upotreba 'staging'?)

U prilogu saljem samu stranicu 'application.php' koju poziva index.php stranica. Pretpostavljam da ovaj skript mora da pozove svaka stranica na prezentaciji koja koristi 'zned-framework'? ILi mozda gresim? U sustini, nije mi ni jasno cemu sluzi ovaj skript, osim sto pretpostavljam da on uredjuje stvari oko samih putanja od zend kalasa, viev, controlers, models... direktorijuma. Ne znam da li ima jos neku ulogu? A glavno sto me buni je to sto u ovom primeru nemam ni jedan skript u modelima i sto u kontroleru imam skript koji se zove 'IndexController.php' i on prakticno nema koda:
Code:
class IndexController extends Zend_Controller_Action
{
    public function indexAction()
    {}
}


e sada u viev direktorijumu imam skript koji predstavlja ono sto ce se pokazati na ekranu on se zove ''index.phtml" (posebno interesantna ekstenzija). Kod te stranice postoji cist html kod - ne bih da ga ispisujem.

Kada na serveru pozovem moju index.php stranicu, na ekranu se prikaze onaj html kod iz index.phtml stranice. Uopste mi nije jasno na koji nacin su ove dve stranice povezane. Isto mi se desava ako isti kod koji je u index.php stranici stavim u neku drugu stranicu na prezentaciji, npr. kontakt.php. Isto mi se prikaze sadrzaj 'viev' - stranice index.phtml.

Primecujem, da moja index.php stranica upste ne poziva ni jedan model, kontroler skoro da nema koda - odnosno poziva samo viev index.phtml.

Kljucna stvar za pocetak je ta, sto ne znam na koji nacin se odredjena stranica povezuje sa tacno odrejdneim modelom, kontrolerom i vievom? I da li se u zavisnosti od akcija korisnika ista stranica moze povezati sa nekim drugim modelom, kontrolerom ili vievom?
Aukcije, www.Odbrojavanje.com
Aukcija može biti osvojena jeftino - za 30 sekundi a 6 dinara!
Prikačeni fajlovi
 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Moderator
Član broj: 31848
Poruke: 1791
*.dynamic.sbb.co.yu.

Sajt: norway.dakipro.com


+190 Profil

icon Re: Zend Framework i MVC.17.09.2007. u 09:56 - pre 152 meseci
Trebao bi dobro da procitas zend dokumentaciju inace ti mnogo stvari nece biti jasne. Kreni sa tutorijalima, glupo je ocekivati da sad sve odjednom skontas i da samo cepas. Moraces mozda i mesec dana da se igras sa tutorijalima, citas dokumentaciju, pohvatas sve termine i provalis kako, sta i zasto funkcionise. Preporucio bih ti da ne zalazis mnogo i to kako neka komponenta fw-a radi, vec da vidis kako radi i kako da je koristis. Koliko vidim, uopste nemas iskustva sa php-om niti sa OOP, mozda je ovo prevelik zalogaj ako nemas neko predznanje (makar teorijsko) o ovim stvarima. Extenzija fajla je nebitna jer View model na kraju samo inkluduje ili na bilo koj drugi nacin fetchuje sadrzaj template fajla.

Znaci, uzmi i radi neke tutorijale za zend fw, gledaj kod, probaj da nesto menjas/dodas pa ces videti sta i kako radi.
 
Odgovor na temu

zgas

Član broj: 74613
Poruke: 334
*.ptt.yu.

Sajt: odbrojavanje.com


Profil

icon Re: Zend Framework i MVC.17.09.2007. u 10:24 - pre 152 meseci
Dakipro molim te nemoj da blokiramo diskusiju. Evo ja sam uzeo najednostavniji tutorial i zelim da preko njega razmotrimo nacin rada. PHP om se bavim vise od 3 godine, u zadnjih godinu dana veoma aktivno, i vrlo detaljno sam proucio osnovne stvari. Znam da koristim klase, a pomalo i da ih programiram a to je dovoljno sto se tice OOP-a za pocetak.

Sto se tice Zend dokumentacije ona je potpuno slaba, je postoje opisi samo za upotrebu alata... dok potpuno izostaje opis nacina rada samog MCV-a.

Molim da neko pogleda moju predhodnu poruku pa da malo razmotrimo osnove nacina rada MVC-a.

Hvala svima.
Aukcije, www.Odbrojavanje.com
Aukcija može biti osvojena jeftino - za 30 sekundi a 6 dinara!
 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Moderator
Član broj: 31848
Poruke: 1791
*.dynamic.sbb.co.yu.

Sajt: norway.dakipro.com


+190 Profil

icon Re: Zend Framework i MVC.17.09.2007. u 10:43 - pre 152 meseci
Ma taman posla da se blokira diskusija, gluposti. Samo ti dajem drugarski savet jer mi se ovde http://www.elitesecurity.org/t283133-0#1691906 ucinilo da nemas pojma OOP pa sam mislio da ti olaksam nekim generalnim savetom. To sto znas da napises klasu, ne znaci da znas i OOP nacin programiranja, OOP nije samo pisanje klasa i njihova upotreba vec nacin programiranja/razmisljanja. A video sam da si pitao neke stvari koje su garantovano spomenute u dokumentaciji, pa sam ti zato predlozio da dobro procitas dokumentaciju. A i sigurno ima tutorijala (ne moraju da budu zvanicni) koji lepo opisuju mvc sa zend-om, mislim da je lakse da odatle provalis jer vec postoji gotov kod za copy-paste, sto ovde na forumu nema.

Nista lose, samo drugarski saveti
 
Odgovor na temu

zgas

Član broj: 74613
Poruke: 334
*.ptt.yu.

Sajt: odbrojavanje.com


Profil

icon Re: Zend Framework i MVC.17.09.2007. u 11:01 - pre 152 meseci
Ja sam ovde postavio sam primer jednog najednostavnijeg tutorijala koji izgleda pored toga sto meni predstavlja problem, on predstavlja problem za objasnjavanje onih koji znaju da koriste OOP ali zanje ne zanu da prenesu drugima. Nije dovoljno procitati samo nesto na engleskom, oni daju uglavnom gotova resenja bez toga da te nauce kako ti da iskoristis framework na nacin koji je tebi potreban. Ovaj jednostavni gotov koncept koji sam dao je bas dobra osnova za objasnjavanje i ucenje.

U vezi sa time mogu samo da dodam sada ono sto sam probao. Znaci da index.php stranicu postoji index.phtml stranica u VIEV direktorijumu dok model ne postoji a kontroler skoro da nema koda (detaljnije u mojoj drugoj predhodnoj poruci). Meni je ovo odgovaralo ba za najosnovnije razmatranje nacina rada.

Ono sto sam probao je da sam izbrisao pomenutu viev index.phtml stranicu i pozvao index.php tada. Doslo je do greske jer je ona bila izbrisana.

Ono najvaznije sto me ovde interesuje je: da li znaci da ni jedna php stranica koja poziva zend frameworka sa:

Code:
$zfApp = new ZfApplication; 


ne moze biti ucitana ako ne postoji odgovarajuci VIEV za nju?

Zeleo sam da u nekoj stranici na prezentaciji koristim za pocetak samo zend framework klese za rad sa datumima a da ne koristim nista od modela kontrolera i vieva. Video sam da model nije potreban jer ovaj primer radi bez njega. Takodje i kontrolera skoro da nema, jedino je ispalo da je VIEV neophodan... ? Da li je zaista?
Aukcije, www.Odbrojavanje.com
Aukcija može biti osvojena jeftino - za 30 sekundi a 6 dinara!
 
Odgovor na temu

_korso_

Član broj: 82797
Poruke: 163
212.200.90.*



+1 Profil

icon Re: Zend Framework i MVC.17.09.2007. u 11:26 - pre 152 meseci
Imas ovde neku dokumentaciju za ZF pa vidi...
http://www.zftutorials.com/
 
Odgovor na temu

zgas

Član broj: 74613
Poruke: 334
*.ptt.yu.

Sajt: odbrojavanje.com


Profil

icon Re: Zend Framework i MVC.18.09.2007. u 10:47 - pre 152 meseci
Hvala na tutorijalima, korisni su za one koji vec znaju da rade (video sam ih i ranije). Ja sam to gledao i imam problema sa tim jer ne nalazim odgovor na moje pitanje koje sam postavio u predhodnoj poruci.

U blokadi sam vec 15 dana sa izradom mog projekta zbog ovoga. Zend framework sam hteo koristiti zato sto izmedju ostalog imam odlicnu podrsku za rad sa datumima (kljiuccno za moje projekte) sto nigde nisam mogao naci za PHP5. Imam hosting na PHP5 i veliki mi je problem da koristim bilo sta drugo.

Jako mi je zao sto mi niko ne moze pomoci da nadjem odgovor na moje predhodno pitanje. :-(

U velikom sam problemu, na PHP 4 ne mogu nazad - za njega postoje gotove kalase za rad sa datumima, a za PHP5 nema, a znend ne znam da koristim........
Aukcije, www.Odbrojavanje.com
Aukcija može biti osvojena jeftino - za 30 sekundi a 6 dinara!
 
Odgovor na temu

_korso_

Član broj: 82797
Poruke: 163
212.200.90.*



+1 Profil

icon Re: Zend Framework i MVC.18.09.2007. u 12:29 - pre 152 meseci
Ovde imas dosta klasa za rad sa datumima za php 5

http://www.google.com/custom?h...;sitesearch=www.phpclasses.org
 
Odgovor na temu

kazil
Robert Bašić
Full time PHP dev :)
Bačka Topola - Novi Sad

Član broj: 120044
Poruke: 686
*.cable-3.sattrakt.net.

Jabber: robertbasic@elitesecurity.org
ICQ: 446475288
Sajt: robertbasic.com


+2 Profil

icon Re: Zend Framework i MVC.21.05.2008. u 21:28 - pre 144 meseci
Mislio sam otvoriti novu temu, al' bih dobio po prstima od moderatora za "dupliranje" tema :)

Elem. Pre neki dan sam odlucio da pokusam da savladam Zend FW po cetvrti (4.) put. Vala, sad cu da istrajem :) Em mi dojadilo da stalno krecem 'skoro-pa-od-nule', em sam od poslednjeg pokusaja doooosta naucio o OOP (and still learnin'), tako da mi je vec lakse :)
Zasto Zendov FW? Ucinilo mi se najlogicnije da koristim FW koju je napisala firma koja je puno doprinela razvoju jezika. Meni dovoljan razlog.

Ne zelim da pametujem, samo da napisem/podelim svoja iskustva sa ovim FWom. Ako neko radi (a valjda radi) snjim, ili ako neko 'oce da krene da radi, nek' se pridruzi :) Ja i dalje ucim da ga koristim, tek sam pre koji dan krenuo da gledam, ceprkam. Zamisao mi je da kako nesto novo 'provalim', postujem ovde.

Za pocetak, 'teorija'. Bez ovoga je tesko shvatiti rad FWa. Bilo bi lepo kada bi svi procitali, pocetnici da lakse shvate nacin rada, a oni koji ga vec koriste, da isprave moje eventualne nenamerne greske :)

Do sada sam primetio, da je ZFW zahtevan samo po nekoliko stvari:

1. Struktura file-ova
Otprilike ovakvu strukturu voli:
Code:

/
|--library/
|  |--Zend/
|--application/
|   |--config/
|     |--config.ini
|     |--file.xml
|   |--controllers/
|      |--IndexController.php
|      |--FooController.php
|   |--models/
|   |--views/
|      |--scripts/
|         |--index/
|           |--index.phtml
|           |--dummy.phtml
|         |--foo/
|           |--index.phtml
|           |--bar.phtml
|--public/
|----css/
|----images/
|----.htaccess
|----index.php

Ovo je neka osnovna varijanta.

E sad. DocumentRoot servera treba postaviti da pokazuje na public, tj. kada se recimo ukuca http://localhost/ onda da izbacuje sadrzaj direktorijuma public. Tako se preko browsera ne moze doci do samih skripti, sto povecava sigurnost.
index.php unutar public direktorijuma se naziva bootstrap file. O njemu ce vise biti kasnije (i .htaccess cu onda da objasnim).

/library/Zend/ sadrzi sve one klase i skripte koje su ljudi iz zenda napisali. To je sam core FWa.

U application direktorijum, idu skripte i klase vezane za samu aplikaciju. Nakon sto je napravljen bootstrap file, programiranje aplikacije ce se svesti na pisanje fileova unutar application direktorijuma.
U config direktorijum mogu da se stavljaju razni konfiguracioni fileovi, za pristup bazi podataka i slicni. Nema veze sto se nalazi u recimo .ini fileu, korisnik preko browsera ne moze da stigne do tog filea (ako je DocumentRoot podesen kako treba), a ako neko, recimo provali na sam server, onda je vec totalno svejedno da li su podaci u .php ili .ini fileu.
U controllers direktorijum idu klase kontrolera za aplikaciju. U models idu modeli, a u views idu fileovi koji sluze za prikaz, neka vrsta template fileova.
Japan je u nekom od prethodnih postova napisao za sta sluzi koji deo: kontroler odlucuje sta se radi sa kojim podacima. Recimo ako je neki podatak dosao kontroleru od korisnika, od view skripta, da li ga upisati u bazu, file, naci nesto u bazi na osnovu tog podatka... ili ako je stigao od modela neki podatak, kontroler odlucuje da li ce da prikaze korisniku taj podatak u view fileu, da ga posalje nekom drugom modelu na dalju obradu... Kazem, i ja jos ucim, tako da nisam bas svestan svih mogucnosti MVC pristupa (verujem da su mogucnosti ogromne).

Dalje, svaki kontroler ima svoje akcije. Recimo, postoji kontroler user. Unutar user kontrolera postoje akcije: showLoginForm, loginUser, logoutUser, registerNewUser, resetUserPassword, changePersonalInfo (ovo je samo primer, moze se i drugacije srediti...) Znaci, kontroler user se bavi akcijama korisnika, kao sto su login i logout. Malo je konfuzno. Sta sad. Ako neko zna ovo lakse i lepse da objasni, do it bre :) Ili recimo, imamo kontroler text, koji ima akcije writeNewText, updateText, deleteText, previewText, archiveText... Tako nekako :)

2. Imena fileova, klasa, kontrolera, akcija
Ovo je mozda cak i vaznije od same strukture fileova.
Skripte unutar controllers direktorijuma, moraju da se pridrzavaju sledeceg:
Skripta nosi naziv kontrolera sa velikim pocetnim slovom, i sa reci Controller, extenzija .php. Primer: IndexController.php, UserController.php, FooController.php...
Unutar skripte za kontrolere definise se sama klasa kontrolera, sa pripadajucim akcijama. I tu ima pravila kojih se moramo pridrzavati:
Naziv klase je isti kao i naziv skripte, samo sto izostavljamo extenziju .php. Znaci, ako je skripta IndexController.php, znamo da je unutar njega definisana klasa IndexController, ako je skripta FooController.php unutra je klasa FooController.
Akcije jednog kontrolera moraju da se pridrzavaju sledeceg: ime akcije sa malim pocetnim slovom iza kojeg sledi rec Action. Primer: indexAction, loginAction, logoutAction, barAction...
Unutar /views/scripts/ direktorijuma pravila su sledeca:
Svaki definisan kontroler, mora imati svoj direktorijum unutar /views/scripts/ direktorijuma. Naziv direktorijuma mora da se slaze sa nazivom kontrolera, osim sto je prvo slovo malo. Unutar svakog direktorijuma kontrolera, mora postojati .phtml file, za svaku akciju tog kontrolera. Ako neka od akcija nema svoj phtml file, javljace gresku. Cak iako je taj file prazan, mora da postoji. .phtml file mora da ima isti naziv kao i akcija na koju se odnosi (bez kljucne reci Action).

Dalje, bitno je da svaka aplikacija MORA imati skriptu IndexController.php, u controllers direktorijumu, unutar koje je definisana klasa IndexController, a unutar koje je definisan najmanje indexAction; najmanje, mora postojati index.phtml file unutar /views/scripts/index/ direktorijuma. To jednostavno mora; ako nesto od ovoga nedostaje, FW ce javljati gresku.

Svaki definisan kontroler, bez obzira kako se zove i cim se bavi, mora da ima definisan minimum indexAction, a ovaj da ima svoj index.phtml file.

Da prikazem taj 'minimum' zahteva:
Code:

File path and name: /application/controllers/IndexController.php

<?php

require_once("Zend/Controller/Action.php");

class IndexController extends Zend_Controller_Action
{

    public function indexAction()
    {
    
    }


Namerno nisam zatvorio sa ?> ovaj PHP file. Zend sam zatvara svaki PHP skript.

Code:

File path and name: /application/views/scripts/index/index.phtml

<!-- Sadrzaj file-a ide od ove linije prema dole. Ovaj komentar je sad tu samo zbog ovog primera. -->
Ovo je obican html file, koji moze da ima u sebi i delove PHP koda. Vise o ovome kasnije.


Prikazacu jos koji primer:
Code:

File path and name: /application/controllers/FooController.php

<?php

require_once("Zend/Controller/Action.php");

class FooController extends Zend_Controller_Action
{

    public function indexAction()
    {
    
    }

    public function barAction()
    {

    }

    public function dummyAction()
    {

    }


I pripadajuci .phtml fileovi (bez sadrzaja, samo putanje):
Code:

File path and name: /applications/views/scripts/foo/index.phtml
File path and name: /applications/views/scripts/foo/bar.phtml
File path and name: /applications/views/scripts/foo/dummy.phtml

You feel it? Ne bas, a? :)
Jos malo o ponasanju ZFWa. Kada ukucate u browser recimo: http://localhost/ desava se sledece: ZFW poziva IndexController i indexAction unutar njega.
Radi na sledecem principu: http://localhost/kontroler/akc...t_parametri=123&itd=qwerty
ZFW, uz pomoc bootstrap filea i .htaccessa, gleda koji je kontroler i koja je akcija u pitanju, i na osnovu toga radi ono sto je unutar kontrolera/akcije odredjeno. Ukoliko nije dat naziv akcije ili naziv kontrolera, onda se poziva indexAction, odnosno indexController.

Primer: imamo FooController.php, sa klasom FooController, koja ima akcije indexAction i barAction.
Ukoliko pozovemo samo http://localhost/ dobijamo IndexController, indexAction, /views/scripts/index/index.phtml
Ukoliko pozovemo http://localhost/foo/ dobijamo FooController, indexAction, /views/scripts/foo/index.phtml
Ukoliko pozovemo http://localhost/foo/bar/ dobijamo FooController, barAction /views/scripts/foo/bar.phtml
Ukoliko pozovemo neku levu, nepostojecu akciju ili kontroler, ZFW ce izbaciti gresku (ukoliko je postavljeno da prikazuje greske, ako nije, dace belu stranu). Mada, najverovatnije, moze i da se podesi da izbaci neki odredjeni, postojeci kontroler i akciju, samo jos dotle ni ja nisam stigao :-/

E, sad jos samo bootstrap file i .htaccess, pa odo da spavam :)

Bootstrap file, iliti, index.php file u /public/ direktorijumu, sluzi da se postavi osnovno okruzenje za ZFW, da mu kazemo gde se sta nalazi i da pokrenemo sam FW.

Ovako izgleda moj jedan bootstrap file:
Code:

<?php

/**
* This is the general styling.
* application/controllers/IndexController.php -> class IndexController with it's public functions-actions (indexAction is a must!)
* application/controllers/FooController.php -> class FooController with it's public functions-actions (indexAction is a must!)
* views/scripts/index/index.phtml -> for IndexController, indexAction
* views/scripts/foo/bar.phtml -> for FooController, barAction

* Every action must have it's corresponding view file (.phtml)
* IE: FooController with barAction() has views/scripts/foo/bar.phtml
*
* To assign a variable from class FooController to bar.phtml use this in barAction():
* $this->view->variableName
* And then in the bar.phtml use this to echo it (or do something else with it...)
* echo $this->variableName;
*
*/

// Display any errors that may occur, this is recomended only for production versions...
error_reporting(E_ALL|E_STRICT);
ini_set('display_errors',1); // set this to 0 on live version

// Set the default timezone (perhaps, it's needed just when You start to work with dates... Dunno if it's used anywhere else... )
date_default_timezone_set("Europe/Belgrade");

// Set the include paths, so ZFW knows where to look, and we don't need to bother with the path/to/file/ part...)
set_include_path('.' . PATH_SEPARATOR . '../library' .
                       PATH_SEPARATOR . '../application/models' .
                       PATH_SEPARATOR . get_include_path());

// Loader is used to load stuff automatically. For more info refer to the manual, chapter 22...
include("Zend/Loader.php");
// Yet again, look at the manual...
Zend_Loader::registerAutoload(); // It auto loads a class when it is called

// Load a config from an .ini file, more info in the manual, chapter 5...
// This is loading a configuration for a database connection...
$config = new Zend_Config_Ini('../application/config/db_config.ini', 'offline');
// Load a config to the registry, more info in the manual, chapter 31
$registry = Zend_Registry::getInstance();
$registry->set('config',$config);

/**
* Zend_Controller_Front's purpose is to initialize the request environment, route the incoming request, and then dispatch any discovered actions;
* it aggregates any responses and returns them when the process is complete.
 */
// More info in the manual, chapter 7...
$frontcontroller = Zend_Controller_Front::getInstance();
$frontcontroller->throwExceptions(true);
// Where can ZFW find the controllers?
$frontcontroller->setControllerDirectory('../application/controllers');

$frontcontroller->dispatch(); // Start...


Kolko pise u komentarima, tolko znam ja o ovome :) Najverovatnije, kako budem napredovao, tako ce se i ovaj bootstrap file siriti. Videcemo.
I jos za kraj .htaccess:
Code:

# Rewrite rules for Zend Framework
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* index.php
# Security: Don't allow browsing of directories
Options -Indexes
# PHP settings
php_flag magic_quotes_gpc off
php_flag register_globals off
php_flag short_open_tag on

Uglavnom, svrha ovoga je: bilo sta da ukuca u browser korisnik, apache ga redirektuje na index.php (bootstrap), odakle ga ZFW salje na odgovarajuce mesto...

Tolko za ovu 'turu'... Pokusao sam da idem nekim logicnim (barem za mene) putem, i nadam se da nesto nisam izostavio. Na osnovu ovoga bi trebalo da uspete napraviti makar onu najjednostavniju, 'defaultnu', aplikaciju.
E, da. Zend mozete skinuti odavde: http://framework.zend.com/download - tamo je i manual. Ja idem po ovoj najnovijoj 1.5.2 verziji.

cheers!

P.S.: Ukoliko budem bio editovao ovaj post, jasno cu naznaciti kada i gde sam editovao.
 
Odgovor na temu

Skaarj
Novi Sad

Član broj: 21463
Poruke: 365
79.101.168.*



+3 Profil

icon Re: Zend Framework i MVC.21.05.2008. u 22:02 - pre 144 meseci
Da dodam jos jedan koristan detalj:

Zend FW radi URL rewrite tako da

localhost/kontroler/akcija/?get_parametri=123&itd=qwerty

moze da se napise kao:

localhost/kontroler/akcija/get_parametri/123/itd/qwerty

 
Odgovor na temu

valajbeg
Student/TS
Sarajevo

Član broj: 5069
Poruke: 593
*.PPPoE-3685.sa.bih.net.ba.

ICQ: 127234502
Sajt: www.microsoft.ba


+6 Profil

icon Re: Zend Framework i MVC.25.06.2008. u 18:45 - pre 143 meseci
efo za z. frameworkom
cijeli blog korak po korak kako napraviti

An Example Zend Framework Blog Application
http://blog.astrumfutura.com/a...t-1-Introductory-Planning.html
www.data.ba | www.microsoft.ba
Microsoft gives you Windows... Linux gives you the whole house. (A. Aganovic)
 
Odgovor na temu

Mister_rap
SE at Viacom

Član broj: 8822
Poruke: 2540
217.24.24.*

Jabber: mister_rap@jabber.com


+21 Profil

icon Re: Zend Framework i MVC.17.10.2008. u 15:41 - pre 139 meseci
Sasvim solidna knjiga za one koje tek pocinju za ZF-om:




http://www.zendframeworkinaction.com/
 
Odgovor na temu

[es] :: PHP :: Zend Framework i MVC.

[ Pregleda: 9892 | Odgovora: 17 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.