Wzorzec projektowy MVC.

PHP Programowanie dodano: 24.05.2019
EDYCJA 29.05.2019

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”.

Ideą MVC jest "możliwość ponownego użycia kodu oraz oddzielenie warstw"
MODEL pobiera odpowiednie wartości z bazy danych i wyświetla WIDOK. Wykonuje inne operacje bazodanowe: dodawanie, usuwanie, operacje na plikach.
WIDOK: to pewna struktura, warstwa prezentacji oparta o HTML i CSS. klient i przeglądarka.
KONTROLER: Element nadrzędny. Stanowi o widoku i modelu. Zarządza nimi - wpisuje tam informacje. sterowanie ruchem w zależności od odpowiedniego żądania. Komunikuje się z modelem. Np. kontroler User uruchamia metodę profile() i jako parametr wstawia "woytek". Funkcja parsera.
MODEL: więcej niż struktura danych. Tu znajduje się większość kodu reprezentująca logikę biznesową - przetwarzanie danych (pobieranie i przygotowanie rekordów z bazy danych). Dzięki temu reszta aplikacji staje się niezależna od tego skąd i w jaki sposób pobierane są dane. KONTROLER (czyli nasza logika) nie musi wiedzieć czy pobieramy dane z bazy (a jeśli tak jest to nie musi wiedzieć czy korzystamy np. z MySQL czy PostgreSQL) czy np. z pliku. Pisząc logikę aplikacji wywołujemy tylko odpowiednie funkcje modelu i w wyniku dostajemy dane do przetworzenia.

WIDOK: reprezentuje to co widzi użytkownik. Znowu powstaje pytanie: dlaczego nie zawrzeć tego w kodzie aplikacji? Widok oddzielony od logiki pozwala na bezinwazyjną zmianę grafiki w dowolnym momencie. Kontroler musi jedynie wiedzieć w jaki sposób przekazać dane do widoku. Osoba wykonująca widok nie musi wiedzieć praktycznie nic o logice programu gdyż dostaje tylko dane, które trzeba sformatować. Powinien zawierać przede wszystkim kod prezentacyjny, taki jak HTML, lub prosty kod PHP przeglądający, formatujący i wyświetlający dane. Unika kodu, który wywołuje bezpośrednio zapytania bazodanowe. Tego typu kod lepiej jest umieścić w modelach.
Unika bezpośredniego używania zmiennych $_GET, $_POST lub innych podobnych, które reprezentują żądanie użytkownika końcowego. Jest to zadanie dla kontrolera. Widoki mogą być wielokrotnie używane na różnorakie sposoby, np. układy: wspólne obszary prezentacji (np. nagłówek strony, stopka) mogą zostać umieszczone w widoku układu.

KONTROLER: Plik, który przechowuje całą logikę aplikacji. Np. index.php. Przetwarza dane wejściowe i przygotowuje odpowiedzi. Wolny od zapytan SQL.
Jest podstawową jednostką logiczną naszego programu. Najważniejsza część kodu. Odpowiada m.in. za przetwarzanie danych pobranych za pomocą modelu i przekazanie ich użytkownikowi oraz zapisanie danych przez niego podanych (poprzez widok). W kontrolerze odbywają się wszystkie konieczne obliczenia i podejmowane są odpowiednie akcje w zależności od działań użytkownika. Kontroler zajmuje się sterowaniem całą aplikacją i jest jej najważniejszym elementem.
Może posiadać dostęp do $_GET, $_POST oraz innych zmiennych PHP które reprezentują żądanie użytkownika;

W dobrze zaprojektowanej aplikacji MVC, kontrolery są często bardzo małe, zawierają prawdopodobnie jedynie kilkadziesiąt linijek kodu zaś modele są bardzo duże, gdyż zawierają dużo kodu odpowiedzialnego za reprezentację i manipulację danymi. Dzieje się tak ponieważ struktura i logika biznesowa reprezentowana przez modele jest bardzo typowa dla konkretnej aplikacji i musi być bardzo dostosowana aby sprostać wymaganiom stawianym przez aplikację; ponieważ logika kontrolera często naśladuje podobne wzorce pomiędzy aplikacjami może zostać uproszczona poprzez używanie frameworku lub klas bazowych.

Dla niektórych fizyczny podział kodu programu jest niewygodny bo lubią „mieć wszystko pod ręką". Jednak taki podział może zapobiec tworzeniu się bałaganu, szczególnie przy tworzeniu dużych aplikacji. Korzystanie z MVC daje od razu gotową strukturę aplikacji co pozwala na szybsze przystąpienie do kodowania. Fizyczny podział kodu pozwala też na uniknięcie problemów ze znalezieniem jakiejś funkcjonalności.

Możliwość jasnego podziału prac na projektem. Programista kontrolera nie musi wiedzieć jak wygląda kod modelu pod warunkiem, że wie co robią poszczególne udostępnione mu metody, nie musi także wiedzieć jak będą wyglądały dane wyświetlane przez widok.

MVC najczęściej stosowane jest przy tworzeniu dynamicznie generowanych aplikacji internetowych. Przy wykorzystaniu MVC zmiana bazy danych nie spędza już snu z powiek programistów. Cały kod SQL znajduje się w jednym miejscu dlatego wprowadzenie zmian nie zajmuje tyle czasu i nie wpływa na reszte kodu aplikacji. Identycznie jest z widokiem co jest szczególnie przydatne gdyż layout'y stron często się zmieniają.

Aby nie pisać wszystkiego od początku powstało wiele framework'ów wspomagających programowanie i udostępniających gotową architekturę opartą na MVC.

PARSOWAĆ: analizować ciąg znaków w celu ustalenia struktury. Przeanalizować, rozbić na składowe.



Losowe zdjęcia


O sobie


gawronski
A.D. 2016

Lubię jazdę na rowerze, wspinaczkę, czytać książki i biegać. Studiowałem mechanikę i budowę maszyn oraz psychologię. Nie zostałem inżynierem ani psychologiem.