![]() |
![]() |
![]() ![]()
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%) ![]() ![]() |
Cytat Akcja wykonkuje operację na modelu po czym zwraca odpowiedni obiekt widoku. Tak być nie powinno. Akcja nie ma prawa być powiązana w żaden sposób z obiektem widoku. MVC polega na oddzieleniu od siebie tych trzech warstw, więc wprowadzanie zależności pomiędzy modelem a widokiem łamie podstawowe zasady tego wzorca. Zmiana widoku spowoduje katastrofę w klasach akcji... Model powinien zwracać kontener z danymi, który następnie zostanie przekazany do widoku, tak aby nie były tworzone powiązania pomiędzy warstwami. Sam pracuję w tej chwili nad implementacją MVC. Kontroler u mnie integruje całą aplikację, posiada wymienne Dispatchery, które tłumaczą żądanie HTTP na żądanie wykonania łańcucha akcji. Przed wykonaniem łańcucha, żądanie musi przejść przez filtry, w których np. można umieścić autentykację i autoryzację. Następnie kontroler iteruje przez kolekcję obiektów wywołujących akcje (czyli po prostu wykonuje kolejne akcje z łańcucha). W razie zmiany łańcucha, zostaje o tym poinformowany kontroler, który w razie czego wróci na jego początek. Kwestia implementacji obserwatora. Nad widokiem jeszcze myślę, gdzieś to upchnę po łańcuchu akcji... Dane są przesyłane w odpowiednich obiektach pomiędzy akcjami. W obiekcie kontekstu można zapisać informacje dotyczące całego żądania, czyli stan sesji itp... |
|
|
![]() ![]() |
![]() |
Aktualny czas: 8.10.2025 - 15:47 |