Skip to content

1. Wykorzystanie architektury MVC w aplikacjach internetowych/PHP

Kod PDF z dokumentu jest dostępny pod nazwą |TUTAJ|.

Kody z dokumentu są dostępne pod nazwą |TUTAJ|.

Model MVC (Model-Widok-Kontroler) ma na celu wyraźne oddzielenie warstw prezentacji, przetwarzania i dostępu do danych. Aplikacja internetowa zgodna z tym modelem będzie miała następującą architekturę:

Taka architektura jest często nazywana architekturą trójwarstwową lub trójpoziomową:

  • interfejs użytkownika to widok (V)
  • logika aplikacji to kontroler (C)
  • źródła danych to model (M)

Interfejsem użytkownika jest często przeglądarka internetowa, ale może to być również aplikacja autonomiczna, która poprzez sieć wysyła zapytania HTTP do serwisu internetowego i formatuje wyniki, które ten jej przesyła. Logika aplikacji składa się ze skryptów przetwarzających żądania użytkownika. Źródłem danych jest często baza danych, ale mogą to być również proste pliki tekstowe, katalog LDAP, zdalna usługa internetowa... Programista powinien dążyć do zachowania dużej niezależności między tymi trzema elementami, tak aby w przypadku zmiany jednego z nich pozostałe dwa nie musiały ulegać zmianom lub zmiany te były minimalne.

Architektura MVC dobrze nadaje się do aplikacji internetowych napisanych w językach obiektowych. Język PHP (4.x) nie jest obiektowy. Można jednak podjąć wysiłek w celu uporządkowania kodu i architektury aplikacji, aby zbliżyć się do modelu MVC:

  • Logikę biznesową aplikacji umieścimy w modułach oddzielonych od modułów odpowiedzialnych za kontrolowanie dialogu żądanie-odpowiedź. Architektura MVC przyjmuje następujący kształt:

W bloku [Logique Applicative] można wyróżnić:

  • program główny lub kontroler, który stanowi punkt wejścia do aplikacji,
  • blok [Actions], zbiór skryptów odpowiedzialnych za wykonywanie czynności żądanych przez użytkownika.
  • blok [Classes métier], który zawiera moduły PHP niezbędne do realizacji logiki aplikacji. Są one niezależne od klienta. Na przykład funkcja umożliwiająca obliczenie podatku na podstawie określonych informacji przekazanych jej w parametrach nie musi zajmować się tym, w jaki sposób informacje te zostały pozyskane.
  • blok [Classes d'accès aux données], który obejmuje moduły PHP pobierające dane niezbędne dla kontrolera, często dane trwałe (BD, pliki itp.)
  • generatory widoków wysyłanych jako odpowiedź do klienta.

W najprostszych przypadkach logika aplikacji sprowadza się często do dwóch modułów:

  • moduł [contrôle] zapewniający komunikację między klientem a serwerem: przetwarzanie żądania, generowanie różnych odpowiedzi
  • moduł [métier], który otrzymuje od modułu [contrôle] dane do przetworzenia i przekazuje mu w zamian wyniki. Moduł ten, [métier], samodzielnie zarządza wówczas dostępem do danych trwałych.