Post
#1
|
|
|
Grupa: Zablokowani Postów: 46 Pomógł: 0 Dołączył: 12.01.2006 Ostrzeżenie: (10%)
|
O MVC na tym forum i w publikacjach elektronicznych oraz tradycyjnych napisano juz wiele. Jednak co publikacja, to nowa implementacji wzorca MVC. Widzialem juz projekt, w ktorym pobranie danych odbywalo sie w kontrolerze, a w modelu jedynie ich przechowywanie.
Mam taki problem. Nigdzie nie moge doczytac czy wzorzec MVC bierze cos takiego pod uwage, jak kilka modeli i widokow? Wiem, ze kontrolerow moze byc kilka. A co z modelami i widokami? I jak to zakodowac obietkowo? Problem: na podstawie url: index.php?akcja=newsy kontroler wybiera model Newsy, w ktorym pobierane sa wiadomosci z bazy danych. Nastepnie zostaja przeslane do dwoch widokow. Pierwszy to widok 'xml', ktory w ktorym generuje plik kanalu rss, a drugi widok to 'http', ktory uruchamia szablon Smarty z newsami. Jak to zakodowac obiektowo? Czy tak jak zademonstrowalem to ponizej?
(IMG:http://forum.php.pl/uwaga.gif) poprawiam trzecie upomnienie. za czwartym będzie ostrzeżenie --- nospor I od razu nasuwaja sie pytania: 1. Jak zrobic, aby liczba widokow byla generowana dynamicznie (nie zawsze beda 2 widoki, moze byc 1,2,3 lub wiecej widokow) 2. Jak skonstruowac klase akcji? 3. Czy jedna akcja to pobranie modelu i przkazanie go widokowi? A raczej, to widok sobie pobiera model. 4. Co z danymi przeslanymi z formularza? Trafia do modelu i zostaje dopisane do bazy danych lub pliku xml; widok nie jest potrzebny. |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 651 Pomógł: 28 Dołączył: 4.12.2004 Ostrzeżenie: (0%)
|
eMartio: Wydaje mi się, że za bardzo kombinujesz z tymi szablonami.
Mam na myśli to: Cytat
Nie wiem, z jakiego systemu szablonów korzystasz, ale np. za pomocą Smarty można pominąć te ambarasy (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) . Można zrobić np. tak:
Idea jest taka, że na podstawie zmiennych przekazywanych w adresie pobierasz za pomocą metody $action->site() tablicę z odpowiednimi danymi, a w szablonie Smarty są instrukcje wyświetlające odpowiednie dane, gdzie każda tablica siedzi w zmiennej $array i jest generowana w zależności od podanych parametrów, które są np. w adresie strony. Inkludować pliki *.tpl też możesz w samym szablonie. Na dobrą sprawę nie wiem, jak masz zorganizowane to wszystko u siebie, ale na pierwszy rzut oka wydaje mi się ten fragment kodu przekombinowany (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) . (właściwe to w moim przykładzie zmienna $site pełni funkcję zmiennej $this->dane w Twoim przykładzie). Zgodzę się, że przypadku jakichś specyficznych danych typu PDF jest sens tworzenia klasy widoku, aczkolwiek, jak już wcześniej przedmówcy wspomnieli, w przypadku danych typu html lub xml, jest to bez sensu. Cytat A kto mówi, że sposób który opisałeś to nie MVC? :] Sam twierdzisz, że rozdzielasz kod na akcje (add/del/edit) i wydzilasz także odpowiednie metody pobierania danych (model) jak i metody do ich wyświetlenia (view). Ale teorytycznie nie jest to czysty MVC (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) , gdyż mam w jednej klasie metody do modyfikacji danych i ich pobierania (czyli model+kontroler i do tego rozproszone), a wydaje mi się, że MVC rozgranicza te dwie sprawy (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) . Po prostu w niektórych sytuacjach, gdzie musiałem wykonywać operacje na różnych danych, ładowanie wszystkich metod pobierających dane w jedno miejsce i wszystkich metod modyfikujących je w inne miejsce, wydało mi się czymś, co może spowodować bałagan. Moje założenia czerpią trochę z MVC, lecz nie kopiują go w pierwotnej formie. Nietrudno można dojść do wniosku, że nie ma sensu sztywno stosować idei modelu widoku i kontrolera. Czasem lepiej trochę ją nagiąć i zmodyfikować w celu usprawnienia działania aplikacji oraz dla zachowania porządku w projekcie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) . |
|
|
|
eMartio MVC od strony praktycznej 28.02.2006, 16:14:21
Speedy Mi osobiście MVC ostatnio nie podchodzi... Wolę so... 28.02.2006, 18:02:28
Ociu Ostatnio trochę zreformowałem swój pogląd na temat... 28.02.2006, 18:46:10
Fipaj [PHP] pobierz, plaintext <?php public construc... 28.02.2006, 18:59:35
Vengeance CytatMi osobiście MVC ostatnio nie podchodzi.
A k... 28.02.2006, 22:09:29
hwao Cytat(Vengeance @ 2006-02-28 22:09:29)Kiedy l... 28.02.2006, 22:28:06
Vengeance eMartio: wrecz odwrotnie - kontroler jest jeden, a... 28.02.2006, 23:05:08
eMartio MVC - MODEL-VIEW-CONTROLLER + ACTION
Przed chwilk... 28.02.2006, 23:09:49
Vengeance "Okreslenia typu, ze widok to szablon Smarty,... 28.02.2006, 23:38:31
eMartio Cytat(Vengeance @ 2006-02-28 22:38:31)"O... 1.03.2006, 08:48:50
NuLL eMartio - jesli zawsze na sile bedziesz sie trzyma... 1.03.2006, 11:23:09
eMartio Cytat(NuLL @ 2006-03-01 10:23:09)eMartio - je... 1.03.2006, 12:17:46
Vengeance eMartio: nie zgodzę się wcale z tym, co napisałeś ... 1.03.2006, 16:42:59
splatch W niektórych sytuacjach taką klasę stworzyć nieste... 1.03.2006, 17:56:07
Martio Czy możecie mi wytłumaczyć jedną rzecz? Jaką rolę ... 1.03.2006, 22:30:54
anas Hej.
A ja z tego co pamiętam fajnie to było rozwi... 2.03.2006, 00:34:42
splatch W springu całość wygląda trochę inaczej - oisałem ... 2.03.2006, 01:18:56
Vengeance Na blogu wystawiłem opis (a raczej UML) mojego Pin... 4.03.2006, 00:39:07 ![]() ![]() |
|
Aktualny czas: 27.12.2025 - 19:43 |