Autor Wątek: MVC i jego rozszerzenia  (Przeczytany 1232 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline mruz

  • Administrator
  • *****
  • Wiadomości: 453
  • Karma: +15/-0
  • Płeć: Mężczyzna
    • Zobacz profil
MVC i jego rozszerzenia
« dnia: Listopad 06, 2015, 12:20:09 »
MVC (Model-View-Controller) - pol. Model-Widok-Kontroler to znany wzorzec:
controllers/
models/
views/

Możemy także spotkać HMVC (Hierarchical) rozszerzający o moduły:
modules/module1/controllers/
modules/module1/models/
modules/module1/views/

modules/module2/controllers/
modules/module2/models/
modules/module2/views/

Jeżeli chcemy, możemy również tworzyć odwołania z poziomu kontrolera do innych kontrolerów (za pomocą jednego żądania HTTP), co przez niektórych jest uważane za niedopuszczalne.

A także MVCS (Service), gdzie mamy dodatkowo warstwę Usług, które pośredniczą między komunikacją Kontrolera z Modelem.
controllers/
models/
services/
views/

Pomysł MVCS jest po to, aby mieć warstwę Obsługi pomiędzy kontrolerem i modelem i upakować w niej całą logikę biznesową, która normalnie byłaby w kontrolerze. W ten sposób, kontrolery są po to, aby przekazywać i kontrolować żądania. Można wywołać usługi w wielu kontrolerach (na przykład na stronie internetowej i w konsoli), bez powielania kodu.

A gdyby tak połączyć wychodzi HMVCS gdzie względem standardowego MVC mamy jeszcze moduły i usługi.
modules/module1/controllers/
modules/module1/models/
modules/module1/views/
modules/module1/services/

modules/module2/controllers/
modules/module2/models/
modules/module2/views/
modules/module2/services/



Ale np. model użytkowników często jest wspólny dla front i backendu (użytkownicy i zarządzanie nimi), tak samo jak usługa komunikacji z nim. W ice/base właśnie wyciągnąłem modele i usługi poza moduły (MSHVC :D):

models/
services/

modules/frontend/controllers/
modules/frontend/views/

modules/backend/controllers/
modules/backend/views/
« Ostatnia zmiana: Listopad 06, 2015, 12:41:08 wysłana przez mruz »
Wesprzyj moją pracę i kup mi czekoladę ;) Link do dotacji na mruz.me