2011-08-17 22:17:10

MVC

W niedalekiej przyszłości mam w planach zajęcie się tematami wzorców projektowych i frameworków. Z obydwoma tematami związany jest wzorzec MVC. Będący z jednej strony właśnie wzorcem, a z drugiej podstawowym elementem konstrukcji wielu frameworków w tym najpopularniejszych: Zend Framework, KohanaPHP czy Symfony.

Model-View-Controller czyli Model-Widok-Kontroler jest architektonicznym wzorcem projektowym. Wzorzec ten dzieli strukturę aplikacji na trzy części:

Model
Zazwyczaj składa się z modułów zajmujących się logiką aplikacji. To właśnie one są odpowiedzialne za przetwarzania danych. W klasach modelu znajdują się wszelkiego rodzaju operacje na bazie danych. Jeżeli w systemie znajdują się zapytania SQL, powinny być umieszczone właśnie w modelu.
Widok
Jest warstwą prezentacji danych. Umożliwia interakcje użytkownika z aplikacją.
Kontroler
Odbiera dane wejściowe od użytkownika i na ich podstawie wywołuje odpowiednie modele. Dane z modeli wysyła do odpowiednich widoków.

Poszczególne części tego wzorca powinny mieć wyłączność na pełnienie swoich funkcji, z czym niektórzy programiści mają problem. Umieszczanie fragmentów widoku czy zapytań SQL w kontrolerze nie powinno mieć miejsca. Niestety nawet niektóre frameworki sprzyjają takiemu przemieszaniu funkcji poszczególnych elementów wzorca MVC.

Choć wzorzec MVC jest głównie wykorzystywany w aplikacjach pisanych obiektowo, to w uproszczonej postaci został wykorzystany w kursie „Zawodowy Webmaster” do budowy portalu społecznościowego. Rolę kontrolera pełni tam plik index.php, modelu – funkcje.php, a widoku pliki szablonów.

Tagi: , , , , , , ,

2 odpowiedzi do “MVC”

  1. tomek pisze:

    Przydał by się jeszcze jakiś prosty przykład, który pokazywał by różnice między Modele, Widokiem, Kontrolerem.

  2. Leszek Sewastianowicz pisze:

    W zasadzie, żeby pokazać przykład, trzeba by zaprezentować podstawy jednego z wymienionych w tekście frameworków. Ten temat z pewnością pojawi się za jakiś czas.

Dodaj odpowiedź

Musisz się zalogować aby dodać komentarz.