![]() |
![]() |
![]() ![]()
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%) ![]() ![]() |
Mi osobiście MVC ostatnio nie podchodzi... Wolę sobie tworzyć klasy odpowiedzialne za wykonywanie wszystkich operacji w danym obszarze (np. newsy-> add/del/edit/show_all/show_one), a później klasę akcji odpowiedzialną za wykonywanie operacji. W tej klasie osobne metody dla pobierania danych i osobne dla ich modyfikacji . Później przekazuję zmienne odpowiedniej metodzie w klasie akcji, która np. wypluwa jakąś tablicę do szablonu.
Posłużę się własnym przykładem: ad.3. ja za pomocą metody z klasy akcji pobieram model, a wyświetlaniem obarczam szablon i plik, który go generuje ad.4. widok możesz wykorzystać do wyświetlania komunikatów na podstawie przekazywanych zmiennych. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 03:08 |