![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 278 Pomógł: 10 Dołączył: 13.02.2007 Skąd: Rybnik Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Ciągle zastanawiam się, czy dobrze interpretuję zasadę MVC. Chciałem napisać coś takiego: KONTROLLER: Index.Controller.php: Pobiera $_GET['view'] i zwraca $this -> setView():
Następnie MODEL pobiera dane z mysql z danego projektu i zwraca:
W ostateczności Widok pobiera wszystko i generuje HTML:
Męczy mnie także pytanie, jak to wszystko połączyć, zeby działało? Chodzi o większą ilość widoków, lub modeli. Proszę mnie nie odsyłać do artykułów, bo z nich nic się (niestety) nie można dowiedzieć. Pozdrawiam, Matix: ) Ten post edytował matix 25.05.2007, 22:03:54 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 698 Pomógł: 3 Dołączył: 28.03.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Mi się wydaje, że MVC to nieco wyższy stopień abstrakcji niż klasy, obiekty itp... Dlatego nie powinniśmy rozmawiać o klasach, tylko o tym, czego te warstwy dotyczą.
Model, czyli warstwa biznesowa, to po prostu wszelkie operacje na danych. Widok, czyli warstwa prezentacji. Prościej mówiąc warstwa odpowiedzialna za interakcję użytkownika z aplikacją. Widok nie może być jednym obiektem, gdyż do widoku zaliczamy wszelkie żądania, odpowiedzi. Tego w jeden obiekt nie można zamknąć, głównie z powodu podstawowych zasad OOP. Kontroler, to warstwa, która pośredniczy pomiędzy dwiema poprzednimi. Odbiera żądania, rozdziela zadania, współuczestniczy przy transferze danych pomiędzy warstwami modelu i widoku. Nie ma tu znaczenia, czy rozmawiamy o Front Controllerze czy Application Controllerze. Akcja to po prostu jakieś działanie na danych. Akcje oczywiście, można pozamykać w obiekty, ale tak czy inaczej akcja jest raczej ogólniejszym pojęciem. Wzorce projektowe są narzędziem nie są związanym z warstwą implementacji. Dlatego np. programiści PHP korzystają z katalogu wzorców J2EE. Każdy implementuje wzorce na swój sposób. Inny nie znaczy zły... Natomiast w rozmowie o wzorcach, rozmawiamy o architekturze, a nie implementacji. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 18:12 |