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: Zarejestrowani Postów: 28 Pomógł: 0 Dołączył: 7.09.2006 Skąd: Poznań Ostrzeżenie: (0%)
|
Skoro wszyscy przedstawiają swoje interpretacje, i ja dołączę, bo mam pewne wątpliwości.
Zend Framework 1.0.1. Jest sobie np. stronka główna. Jak wiadomo stronka główna zawierać może kilka dynamicznie generowanych elementów, jak lista ostatnich newsów, wpisów na forum, liczniczki, inne. Są też inne strony, które mogą zawierać różne zestawy innych elementów strony, w różny sposób wyświetlanych i mogą różnić się diametralnie od strony głównej. Jest więc kontroler strony głównej i innych. Myślałem długo, jak do tego podejść, ponieważ niby kontroler ma przypisany jeden widok, a jeden widok ma mieć przypisany jeden kontroler. Tylko jak tu ładnie i wygodnie tworzyć kolejne składające się z różnych dynamicznych elementów stronki, by nie dotykać za bardzo kodu? Wymyśliłem zatem tak, że do każdego kontrolera jest przypisany pliczek konfiguracyjny. Ten zawiera informacje na temat elementów, jakie mają się w danej akcji pojawić, jakie dostają parametry i jakie szablony mają używać, by się wyświetlić. Np. kontroler index ma akcję index, więc jest views/controllers/index/index.xml Tam jest np. nagłówek, szablon naglowek_normalny.phtml, tytuł: tytuł sajtu + tytuł aktualnej strony, aktualna data i parę innych pierdółek. lista newsów, szablon newsy_główna.phtml, ile newsów: 10, kategoria: główna lista postów forum, szablon: posty_forum_główna.phtml, ile postów: 15 itd. Do każdego takiego elementu dynamicznego przypisana jest klasa, która zajmuje się pożywieniem elementu danymi z modelu/modeli, zatem można powiedzieć że to taki mały kontroler. Moja klasa rozszerzająca Zend_Controller_Action (MacBirdie_Controller_PresentationAction, a co (IMG:http://forum.php.pl/style_emoticons/default/aaevil.gif) ) działa tak że w init pobiera konfigurację dla kontroler/akcja, akcja kontrolera domyślnie nic nie robi, dopiero w post-dispatch pobierana jest informacja na temat elementów i zostają kolejno odpalane klasy tych elementów, te każdemu szablonowi Zend_View (na razie spróbuję standardowe phtml) wrzucają potrzebne dane, następnie widoczki są renderowane i dopisywane do response. Czy to jest czy nie jest herezja MVCowa? (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Na takiej zasadzie od dawien dawna działa sajt stworzony przeze mnie daaawno temu, PDAclub.pl i jest to metoda bardzo wygodna, jednakże tam MVC nie stosowałem, więc nie wiem czy jakichś zasad nie naruszam. Jeśli tak, jakie są inne podejścia do tego problemu? |
|
|
|
matix [MVC] Czy dobrze interpretuję ? 25.05.2007, 22:02:58
ActivePlayer kontroler:
- sprawdza dane z geta, posta itd itd
-... 25.05.2007, 22:10:37
Jabol Widok wywołuje model aby pozyskać dane l... 25.05.2007, 23:00:33
jastu Hm...ja korzystam z trochę innej interpretacj... 26.05.2007, 08:48:38
koodlaty Cytat(matix @ 25.05.2007, 23:02:58 ) ... 26.05.2007, 08:49:22
matix Ok,
mniej więcej rozumiem i dziękuję za wszystkie... 26.05.2007, 09:07:45
koodlaty Kod odbierajacy i filtrujacy dane z POST/GET (i ws... 26.05.2007, 09:52:22
sf Proponowałbym wprowadzić dwie klasy - Re... 26.05.2007, 10:46:39
Cysiaczek CytatRozumiem jak działają łańcuchy akcji ale nie ... 26.05.2007, 11:12:48
Ludvik CytatAkcja wykonkuje operację na modelu po czym zw... 26.05.2007, 11:26:44
jastu CytatZmiana widoku spowoduje katastrofę w klasach ... 26.05.2007, 12:11:59
Cysiaczek Obiekt widoku nie powinien nic wiedzieć o logice s... 26.05.2007, 12:31:52
jastu Skoro widok ma nic nie wiedzieć o logice systemu a... 26.05.2007, 12:50:56
Ludvik Dobrym rozwiązaniem jest wzorzec View Helper.
Cho... 26.05.2007, 12:54:52
Cysiaczek Może ustalimy jakieś słownictwo? Każdy tu używa in... 26.05.2007, 14:10:27
Ludvik Mi się wydaje, że MVC to nieco wyższy stopień abst... 26.05.2007, 15:33:58
Cysiaczek CytatModel, czyli warstwa biznesowa, to po prostu ... 26.05.2007, 16:05:21
Ludvik Tak jak pisałem, model to dane i operacje na nich.... 26.05.2007, 16:30:45
matix Wybaczcie, ale z tego co widzę to MVC to jedno wie... 26.05.2007, 18:44:26
Cysiaczek Przykład dotyczy wyświetlenia warto... 26.05.2007, 19:31:23
matix @up: jesteś kolejną osoba, która myśli inaczej niz... 26.05.2007, 19:46:15
Cysiaczek Tak. Masz rację. Ja też to zauważyłem, dlatego pos... 26.05.2007, 19:51:04
menic Tyle ile programistow tyle opini nt MVC
MVC jest ... 26.05.2007, 20:02:58
matix Całe forum nie, ale może przynajmniej przykleić te... 26.05.2007, 21:40:38
sf Cysiaczek ładnie to rozpisał jakie są podejścia do... 26.05.2007, 22:13:52
menic @Cysiaczek: Wlascicie to czemu bloga nie prowadzis... 26.05.2007, 22:18:09
Cysiaczek Może nawet zacznę, ale dopiero jak się uporam z fr... 27.05.2007, 13:27:09
menic niedoczekanie 27.05.2007, 13:30:35
sf właśnie... mój się budował 2 lata, niby jest, ale... 27.05.2007, 15:57:07
href Przepraszam ze tak sie wcinam w inny temat, ale ni... 23.07.2007, 09:13:10
kwiateusz tak takie coś można nazwać mvc wszystkie warstwy s... 23.07.2007, 12:32:03
miedzna Model.php
[PHP] pobierz, plaintext <?phpclass ... 14.08.2007, 13:28:41
sanchoo mam pytanie o moja interpretacje... tzn o krytyke ... 14.08.2007, 14:55:08
WebCM Ostatnio zaglądnąłem do czę... 15.08.2007, 18:53:34 ![]() ![]() |
|
Aktualny czas: 31.12.2025 - 14:25 |