Inne

Wzorzec MVC w PHP – Czym jest? Dla kogo? I o co w ogóle w nim chodzi?

Prędzej czy później, podczas tworzenia stron WWW, każdy spotka się z pojęciem MVC. Co to znaczy, jak to wygląda i jak to działa? Tego dowiecie się niebawem (a konkretnie poniżej, zatem zapraszam do lektury). Na ten temat powstała już masa artykułów, więc dlaczego opisałem go kolejny raz?  Ponieważ chciałem opisać najprościej jak to tylko możliwe MVC, bez długich wywodów po których w większości nikt nic nie zrozumie. W skrócie mówiąc jest to tylko liźnięcie tematu dla najbardziej początkujących.

Dlaczego lepiej tworzyć aplikacje internetowe przy użyciu MVC?

Myśląc o zaletach, dlaczego większość programistów programuje w oparciu o Model-Widok-Konktroler, przychodzą mi cztery główne myśli:

  1. Bardziej zorganizowany kod.
  2. Zajmujesz się tym czym musisz, czyli np.: projektant upiększający wygląd witryny, nie musi znać przykładowo języka PHP.
  3. Łatwość rozbudowy i utrzymania aplikacji.
  4. MVC narzuca określony styl kodowania.

Wzorzec projektowy MVC, dzieli aplikację na trzy niezależne komponenty:

  • Model – obsługuje dane.
  • Widok (ang. View) – obsługuje wyjście.
  • Kontroler(ang. Controller) – obsługuje wejście.

Rozwijając poprzednie punkty lepiej jest myśleć o MVC, jako:

  • Model – zapewnia dostęp do danych, wykonując na nich operacje.
  • Widok – działa jako interfejs użytkownika, jest odpowiedzialny za prezentowanie danych zwróconych przez logikę biznesową ( Model ).
  • Kontroler – obsługuje dane routingu; kieruje żądania do odpowiednich metod Modelu.

Abyście lepiej zrozumieli sposób działania szkieletów aplikacji wykorzystujących wzorzec MVC, opisze go na przykładzie hipotetycznej aplikacji, która przelicza waluty z PLN na USD:

  • Użytkownik korzysta z widoku, aby określić wartość oraz rodzaj konwersji.
  • Kontroler odpowiada na żądanie, określając właściwą operację konwersji, przygotowując niezbędne dane i przekazuje je do modelu.
  • Model oblicza wartość z PLN na USD i zwraca wartość do kontrolera.
  • Kontroler wybiera odpowiedni widok i przekazuje do niego wynik obliczeń, który zostaje później wyświetlony użytkownikowi poprzez wybrany wcześniej widok.

Dla kogo MVC?

Aby programować w PHP i wykorzystywać MVC należy znać podstawy programowania OOP. Moim zdaniem najlepiej jest po poznaniu podstaw OOP przejść od razu do jakiegoś Framework, dlaczego? Ponieważ Frameworki wymuszają na nas niejako zasady dobre programowania.

Temat frameworków zostanie poruszony w następnym artykule. 

komentarzy 5

  • Awatar
    Kowalski

    25 grudnia 2012 01:02

    Jestem rozczarowany doborem tematów. Jest tyle ciekawych tematów na czasie, które mogłyby przyciągnąć Wam czytelników, a piszecie o banałach, do tego enigmatycznie i lekko rozmijając się z prawdą. Co na przykład znaczy, że kontroler przygotowuje niezbędne dane? Albo czemu do MVC należy znać podstawy OOP, jak spokojnie można tłuc strukturalnie i też mieć rozdział na MVC?

    Odpowiedz
    • Awatar
      Michał Kortas

      25 grudnia 2012 12:13

      Drogi czytelniku, mam w zwyczaju nie dyktować tematów, o których chcą pisać redaktorzy wortalu. Co do ich doboru – może zaproponujesz coś od siebie? Bardzo chętnie się do nich dostosuję. Dzisiaj wieczorem dojdzie wpis na temat Responsywnego Web Designu, a wkrótce – również za sugestią jednego z czytelników – przejdę do omawiania w jaki sposób możemy wykorzystać Twitter Bootstrap w naszych przyszłych projektach.

      Naszym celem jest pisanie dla Was, ale bez żadnych sugestii możemy strzelać „na ślepo” :-) Dziękuję Ci serdecznie za opinię i czekam na wskazówki.

      Wesołych świat, tak przy okazji!

      Odpowiedz
    • Awatar
      Mr.Mr

      28 grudnia 2012 13:51

      Co więcej redakcja jest otwarta na wszelkie propozycje artykułów. Jeśli byś chciał to sam możesz śmialo podesłać artykuł, który (o ile znajduje się w szeroko rozumianej tematyce webmasteringu) na pewno znajdzie się na portalu (jakość oczywiście też jest brana pod uwagę)

      Odpowiedz
  • Awatar
    rwtryb

    28 grudnia 2012 12:25

    moim zdaniem art jest dobry, wiele samouków php nigdy nie rozbije się nawet o MVC, a to bardzo źle. Fajnie, żeby wiedzieli o co chodzi.

    Podstawy OOP to podstawy, nie ulegajmy bylejakości, proszę bardzo. Trzeba znać. Dodam, że jeżeli ktoś chce ogarnąć MVC to najłatwiej przychodzi to na podstawie Ruby on Rails, tam nie ma wyjścia :)

    Odpowiedz
  • Awatar
    Zapiski Webmastera

    12 lutego 2014 11:41

    Bardzo ciekawy artykuł, jesli ktoś zastanawiał się czy skorzystać z wzorca MVC w PHP to ma odpowiedź :) Więcej informacji na ten temat, między innymi jak zbudować framework oparty na mvc znaleźć można na http://www.zapiskiwebmastera.pl/wlasny-framework/

    Odpowiedz

Zostaw odpowiedź