MVC model view controller v CakePHP

publikované: od: Tibor Piňo

V dnešnom článku si detailne priblížime pohľad na celkovú architektúru frameworku a tou je architektúra Model View Controller. Porozumenie MVC je pre vývoj v CakePHP zásadné a tento článok vás ponorí do tajov tohto návrhového vzoru z pohľadu daného frameworku.

Článok je voľne inšpirovaný v Cookbook::Un­derstanding Model-View-Controller. Týmto by autor chcel požiadať ostatných, ktorí by mali záujem na preklade Cookbook do slovenského jazyka, nech vyjadria svoj postoj v diskusii k článku.

Úvod

CakePHP je postavený na návrhovom vzore MVC. Pri programovaní aplikácií postavených na tomto návrhovom vzore, MVC rozdeľuje danú aplikáciu na 3 základné vrstvy

  1. Model – reprezentuje dáta aplikácie
  2. View – zobrazuje dáta modelu
  3. Controller – prijíma požiadavky od klienta a na základe konkrétnych požiadaviek riadi beh aplikácie

Obrázok znázorňuje request od klienta a jeho následné spracovanie v CakePHP. Pre ilustráciu si predstavme, že klient nazvaný „Ricardo“ klikol na odkaz „Buy A Custom Cake Now!“ na domovskej stránke našej web aplikácie.

  1. Ricardo klikol na odkaz smerujúci na adresu www.example.com/cakes/buy a jeho prehliadač vytvoril request na váš webový server.
  2. Dispatcher kontruluje request URL (/cakes/buy) a smeruje daný request na správny controller.
  3. Controller vykonáva určitú logiku aplikácie. Pre príklad, controller môže kontrolovať, či je Ricardo prihlásený.
  4. Controller taktiež používa modely na získanie prístupu k aplikačným dátam. Modely najčastejšie reprezentujú databázové tabuľky, ale môžu byť taktiež reprezentované LDAP entitami, RSS kanálmi alebo súbormi v systéme. V našom príklade controller používa model na získanie Ricardových posledných nákupov z databázy.
  5. Controller okrem iného predáva dáta do ďalšej časti MVC architektúry nazvanej View. View vezme dáta a pripraví ich pre zobrazenie v klientovi. Views sú v CakePHP najčastejšie vo formáte HTML, avšak môžu byť aj jednoducho vo formáte PDF, XML alebo v inom formáte.
  6. Akonáhle view kompletne pripraví dáta pre zobrazenie, následne sú spracované dáta vrátené ako response do Ricardovho klienta.

Takmer každý request do vašej aplikácie bude nasledovať obdobný postup, preto je dobré si daný postup poriadne zapamätať a samozrejme mu aj porozumieť.

Výhody

Prečo používať MVC? Pretože je to je ustálený návrhový vzor, ktorý pretvorí aplikáciu na udržateľný, modulárny a rýchlo sa vyvíjúci balík. Nové vlastnosti sú pridávané jednoducho a staré rysy dostávajú novú tvár. Modulárny a oddelený návrh taktiež umožňuje developerom a návrhárom pracovať súčasne, zahŕňa taktiež možnosť rychlého prototypovania. Separácia taktiež umožňuje developerom robiť zmeny v jednej časti aplikácie bez ovplyvnenia zvyšných častí.

Ak ste nikdy predtým nevyvíjali aplikáciu touto cestou, určite to zaberie určitý čas zoznámiť sa s návrhovým vzorom MVC, ale som presvedčený, že ak tak raz urobíte, nikdy to nebude chcieť robiť inak.

VN:F [1.8.3_1051]
Rating: 4.5/5 (2 votes cast)
MVC model view controller v CakePHP4.552