BLOG

Yii framework - 3. časť MVC

MVC (Model-View-Controller) architektúra bola prvý krát definovaná niekedy pred 30 rokmi a podstatou tejto programovacej architektúry je rozdeliť aplikáciu na viac častí a hlavne oddeliť prezentáciu od logiky aplikácie. Výhodou takéhoto prístupu k vývoju aplikácie je, že môžete upravovať jednotlivé časti bez toho aby ste pokazili celok a samozrejme podľa mňa aj rýchlosť a znovupoužiteľnosť kódu.

V tomto diele o Yii budem písať o jednotlivých častiach MVC architektúry, ako sú navzájom previazané a ako medzi sebou komunikujú. Návrhový vzor MVC rozdeľuje aplikáciu do troch rozdielnych častí:

  • Model – ktorý zaobaluje data z DB (aj iné veci , vysvetlím neskôr)
  • View – je vlastne rozhranie medzi užívateľom a aplikáciou
  • Controller – vykonáva akcie užívateľa

Model ako som už spomínal nám zaobaluje, alebo mapuje data v databázových tabuľkách. To znamená, že ak mám v DB tabuľku uzivatelia , Yii ju mapuje triedou, ktorá sa volá uzivatelia a nachádza sa v súbore uzivatelia.php v zložke  webroot/test/protected/models (webroot = C:\xampp\htdocs). Táto trieda má mnoho metód a dedí vlastnosti z niektorých bázových tried podľa toho na aký typ operácií ju chceme použiť. Okrem toho, že mapuje tabuľky má za úlohu napríklad aj validovanie vstupných dát z formulárov. Tieto vlastnosti si postupne vysvetlíme neskôr v ďalších častiach.

 

View inak povedané aj pohľad alebo ako ja hovorím je to to čo vidíte na monitore, čiže HTML , CSS , JavaScript a podobne. Grafická prezentácia alebo view preberá data z controllera alebo modelu a stará sa o zobrazenie týchto dát a samozrejme aj šablón. Keďže väčšinou preberá data z controllera preto v Yii su súbory uložené v webroot/test/protected/views/{názov controllera}/{názov akcie}.php . Teraz sa to môže zdať trochu náročnejšie na pochopenie ale nie je;) . Šablóny sú uložené v webroot/test/protected/layouts/{názov šablóny}.php .

Controller vykonáva určité akcie aplikácie. Zjednodušene povedané keď budete chcieť napríklad uložiť dáta do databázy tak zavoláte akciu s názvom create. Technicky povedané Controller je trieda , ktorá má v sebe metódy a voláme ich akcie. Keď už som spomínal DB tabuľku uzivatelia , tak si povieme, že sa o akcie ako create, update , delete (CRUD) bude starať nejaký controller a bude sa volať uzivateliaController. Bude uložený v súbore uzivateliaController.php a síce v webroot/test/protected/controllers/uzivateliaController.php . Trieda uzivateliaController  má metódy inak nazývané aj action a akcie sú napríklad uloženie dát do databázy, zmazanie, upravenie, vytiahnutie dát z DB a rôzne iné, ktoré ani nemusia súvisieť s DB tabuľkami.

Čo z toho vyplýva? Ak chcem vyvolať nejakú URL v Yii frameworku tak vždy má nasledovný tvar :

Webroot/index.php?r=controller/action

Neskôr si v našej app upravíme rootovanie a bude cesta vyzerať nasledovne:

Webroot/controller/action

Poprípade keď sa rozhodnete používať moduly bude cesta nasledovná:

Webroot/module/controller/action

V našej vzorovej aplikácii by cesta bola nasledovná.

http://localhost/test/controller/action

ak by som predpokladal, že mám tabuľku uzivatelia s modelom uzivatelia a controllerom uzivateliaController a chcem do tejto tabuľky uložiť nejaké údaje, cesta by vyzerala nasledovne:

http://localhost/test/uzivatelia/create

uzivatelia – je názov controllera
create – je akcia (metóda controllera) ktorú chcem vykonať

V budúcom diele si ukážeme ako nastaviť a nakonfigurovať Yii aplikáciu. Vaše reakcie očakávam v diskusii pod článkom.

Reakcia od: strikac@gmail.com

Som rad, ze prisiel dalsi diel tohto serialu. Je dobre vysvetlit aj MVC model nielen vseobecne ale aj z pohladu frameworku Yii. Super, super. Uz sa neviem dockat dalsieho dielu.
pridané : 2010-07-14 11:33:21






twitter ikonka pravý stĺpecNaše posledné Tweety odoberaj naše tweety