![]() |
![]() |
![]() ![]()
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: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
Może ustalimy jakieś słownictwo? Każdy tu używa innych definicji i stąd większość problemów.
Implementacji MVC i innych wzorców jest wiele - wiele z nich również inaczej definiuje pojęcia. Moja propozycja jest następująca: Model (nie mylić z modelem dziedziny (domain model)) Pozyskiwanie danych z bazy danych lub innych źródeł - udostępnia zwarty interfejs dostępu do danych. Wykonuje wszystkie operacje za tzw. zamkniętymi drzwiami. Controller Z premedytacją nie definiuję tu Front Controllera i Application Controllera, bo ich implementacje najczęściej są łączone i z biegiem czasu wychodzą poza definicje tych wzorców. Tu definicje będą dwie: a ) Controller jako klasa zawierająca akcje Najczęściej spotykana odmiana implementowana przez np, CakePHP. W jego ramach definiujemy metody naszej aplikacji. Jest on częścią logiki aplikacji b ) Controller jako obiekt sterujący akcjami Nie zawiera żadnych metod odpowiedzialnych za logikę aplikacji, a jedynie steruje obiektami (np. polecenia/akcji) i reaguje na wyniki ich działania. Widok Tu jest wiele niedomówień (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif) a ) Widok jako obiekt systemu (Output) Część systemu odpowiedzialna za renderowanie (tu strony www). Odwołuje się do danych (udostępnionych przez kontroler, bądź model, co zależy od implementacji). b ) Widok jako szablon W praktyce plik, który jest wypełniany danymi przez aplikację (php, smarty, opt, i inne) Można podzielić na: - pasywny - przyjmuje dane, ale nie odwołuje się do metod kontrolera, czy modelu, czy innych obiektów obecnych w systemie. Operuje tylko na danych, które otrzyma. - aktywny - to samom co wyżej, ale może się odwołać do innych obiektów systemu Akcja Tu również definicje mogą być różne, choć wszystkie dotyczą logiki aplikacji a ) Akcja rozumiana jako obiekt polecenia Wykonuje działanie (np. modyfikuje pobrane z modelu dane) i jest w jakiś sposób sprzężona z kontrolerem b ) Akcja rozumiana jako część kontrolera Jest metodą w ramach klasy kontrolera c ) Akcja rozumiana jako użytkownik kodu Wykorzystuje zarówno kontroler, model jak i inne klasy/obiekty w systemie. Sami widzicie, ile może być różnych znaczeń słowa kontroler. Większość z Nas używa różnych kombinacji, co prowadzi do nie zrozumienia. Jeśli ktoś widzi inne możliwe definicje, to niech się podzieli. Zapewne można jeszcze parę znaleźć - można by stworzyć osobny topik : ) Pozdrawiam. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 04:41 |