Wzorzec MVC

Ostatania modyfikacja: 28 września 2017, kategoria: Php

Jeżeli myślisz o profesjonalnym tworzeniu aplikacji internetowych, musisz zainteresować się wzorcem MVC w PHP. Są to zasady tworzenia optymalnego i czytelnego kodu, których musisz przestrzegać pisząc aplikację. Wzorzec MVC jest bardzo popularny szczególnie jeżeli chodzi o aplikacje WEBowe. Używanie tego wzorca niesie ze sobą szereg zalet, zarówno dla Ciebie jak i klientów.

Czym jest wzorzec MVC?

Wzorzec MVC to skrót od angielskiej nazwy Model View Controller. Jest to wzorzec projektowy, wykorzystywany przez wielu programistów. Polega on na podzieleniu naszej aplikacji (strony) na poszczególne warstwy. Każda warstwa czyli widok, model i kontroler odpowiada za poszczególne zadania.

Dzięki podzieleniu aplikacji na osobne warstwy kod aplikacji nie przeplata się z treścią. Niesie to ze sobą ogromne plusy. Pisząc aplikację dla samego siebie, nie musi Ci zależeć na porządku, szczególnie jeżeli jest to mała aplikacja. Jeżeli jakaś firma zleci Ci do wykonania projekt, używanie wzorca projektowego jest niezbędne! Być może stworzysz aplikację, która po kilku latach zostanie oddana do renowacji innej firmie. Będąc twórcą projektu musisz zadbać, aby inne osoby zajmujące się Twoim projektem w przyszłości, umiały się w nim połapać.

Jeżeli jesteś programistą to zapewne zauważyłeś, że nie ma nic gorszego dla programisty niż poprawianie/modyfikacja cudzego kodu. Każdy człowiek ma inne podejście do problemu i inaczej go rozwiązuje. Poprawiając lub rozbudowując obcy kod, ktoś narzuca Ci swoje myślenie do którego musisz się przyzwyczaić. Pisząc aplikacje używając wzorca MVC ten problem znika!

MVC jest całkowicie obiektowe, tak samo jak całkiem obiektowy jest C#. Nie można pisać strukturalnie używając tego wzorca, było bo to sprzeczne z jego założeniami.

Zalety wzorca MVC

W poprzednim akapicie opisałem Ci czym jest wzorzec MVC oraz jego główną zaletę – czyli mobilność. Tak na prawdę niesie on ze sobą o wiele więcej zalet niż początkowo mógł byś przypuszczać.

Pracując nad rozbudowanymi projektami, prawie zawsze zaangażowanych jest do pracy wiele osób, przede wszystkim programista i grafik. Dzięki używaniu wzorca MVC grafik pracuje na swojej warstwie, tworzy szablon strony i zupełnie nie obchodzi go kod PHP. Z kolei programista skupia się na solidnym, bezpiecznym kodzie i zupełnie nie obchodzi go oprawa graficzna. Programista pisze kod w ten sposób, aby model i kontroler wypluwały odpowiednie wartości do widoku, gdzie są wyświetlane użytkownikowi.

Trzy podstawowe warstwy MVC

  • Kontroler – jest to główna warstwa, mózg całej aplikacji. Kontroler obsługuje wejście, czyli trafiają do niego informacje bezpośrednio od użytkownika. Kontroler steruje modelem oraz widokiem i wymienia z nimi informacje. Kontroler decyduje jakie informacje i jakie podstrony mają być wyświetlane użytkownikowi.
  • Model – jest to warstwa zajmująca się przetwarzaniem danych, czyli przeważnie zapisywaniem i odczytywaniem rekordów z bazy danych (np. MySQL).
  • Widok – warstwa odpowiedzialna za wyświetlanie danych użytkownikowi. To od niej zależy wygląd strony, to na tej warstwie pracuje grafik. Zawiera ona w sobie kod HTML i nieliczne wstawki kodu PHP, jedynie po to aby wyświetlić wartości zwrócone przez pozostałe warstwy. Obsługuje wyjście aplikacji.

wzorzec-mvc

Czym są warstwy o których tyle gadania? Dawno temu nie mogłem pojąć jak budować aplikację na warstwach i czym one właściwie są. Cóż, dopóki nie zaczniesz pisać aplikacji w MVC będzie ciężko Ci to zrozumieć. Warstwy jako takie nie istnieją.. Określone pliki, klasy i funkcje grupuje się w warstwy według ich użyteczności, równie dobrze słowo „warstwa” można zastąpić słowem „grupa”.

Jak pisać w MVC?

Rozumiesz już na czym polega wzorzec MVC, jednak prawdopodobnie zastanawiasz się jak wykorzystać te informacje w praktyce. Aby pisać aplikacje w MVC najlepiej posłużyć się gotowymi frameworkami. Wielu programistów stara się napisać samemu swojego własnego frameworka, ale moim zdaniem całkowicie nie ma to sensu. Istnieje wiele frameworków, które tworzą zespoły na prawdę doświadczonych ludzi. Pisząc własnego frameworka zmarnujesz czas, pobawisz się w wymyślanie koła od nowa i najprawdopodobniej będzie mało funkcjonalny.

Zdecyduj się na jakiś popularny framework i zacznij pisać proste strony stosując zasady wzorca MVC. Im bardziej popularny framework tym więcej kursów, opisów i tutoriali znajdziesz o nim. Oto lista najpopularniejszych i jednocześnie darmowych frameworków:

  • Zend Framework (lekko skomplikowany)
  • CakePHP
  • CodeIgniter (bardzo dobry na początek)
  • Kohana

Podsumowanie

Wiesz czym jest MVC i jak ruszyć z miejsca aby się go nauczyć. W artykule nie opisałem etapu pisania aplikacji, ponieważ jest to dobry pomysł na kilka dłuuugich artykułów. Niniejszy artykuł stanowi jedynie wstęp do innych, o tym  jak krok po kroku napisać aplikację w MVC (np. bloga). Najprawdopodobniej wykorzystam w nich CodeIgniter.

 

Użytkownik Radek napisał:

15 sierpnia 2013


Bardzo fajna prezentacja :). Właśnie „ogarnąłem” nieco OOP i teraz chce się wdrożyć w MVC, jakiś tutorial polecasz ? książka ? (o ile wytłumaczona bardzo zgrabnie i zrozumiale)
wiem wiem, wujek google pomoże, ale chce zapytać tutaj :)

Użytkownik Karol napisał:

15 sierpnia 2013


Niestety nie obracam się w PHP na tyle, aby móc polecić coś ciekawego.

Użytkownik iso napisał:

14 listopada 2017


Może i pisanie własnego frameworku nie ma sensu ale przynajmniej mi sprawiło wiele frajdy xd

Użytkownik Konrad napisał:

17 kwietnia 2018


Sama wizualizacja graficzna oraz tekstowa super, jednak co do podsumowania oraz zejścia na framework to już kiepski przymus. Oczywiście dla prostych stron czy systemów można tak podejść, jednak nie jest to nigdy tworzenie koła od nowa, bo własnie pisząc właśnie rozwiązania uczymy się dużo więcej a framework-i mogą nas w tym przypadku nauczyć pewnych zasad i dobrych przyzwyczajeń, bo programiści pracujący przy tworzeniu potężnych platform czy nawet systemów obiegu dokumentów w korporacjach czy bankach nigdy nie opierają się o framework-i.

Użytkownik Ziomek napisał:

14 lipca 2018


Właśnie, że bardzo często opierają się o frameworki a tym bardziej mikroframeworki. Symfony 4, Laravel 5 -> to się stosuje bardzo często we wszelkich projektach dużych, średnich i małych.

Zachęcam Cię do zostawienia komentarza!

Ilość znaków: 0