![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 235 Pomógł: 2 Dołączył: 30.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Zapoznaję się właśnie z czymś takim jak MVC, napisałem sobie trochę kodu który przypomina frameworka (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Problem w ty że gdzie o tym nie poczytam to coś innego piszą - jakie powinny być relacje widoku modelu i kontrolera? Moje pojęcie jest takie: Kontroler wybiera odpowiedni model, wykonuje wszystkie operacje logiczne związane z daną akcją po czym pobiera odpowiednie dane z modelu i je przekazuje do widoku (żeby operować na ładnych przykładach niech będzie to lista newsów) który to widok z tych danych generuje kod html dla użytkownika. Model odpowiada za operacje na danych, ich zmianę oraz pobieranie. Jeśli kontroler musi np. usunąć newsa to wywołuje odpowiednią metodę modelu. Widok operuje jedynie na danych przekazanych mu przez kontroler, nie ma dostępu do modelu. Czy ta filozofia jest prawidłowa? Na wikipedii w schemacie widok ma połączenie z modelem, ale w tym momencie nie za bardzo rozumiem w jakim celu. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 398 Pomógł: 10 Dołączył: 24.11.2004 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Rozne sa interpretacje, generalnie chodzi o to zeby te trzy warstwy byly jak najmniej ze soba sprzegniete. Mozna logike wyrzucac do modeli, mozna czesciowo (np. validacja formularza, wyslanie maila) trzymac ja w kontrolerze.
Kontroler moze pobierac z modelu i przekazywac do widoku, moze rowniez tylko wywolac odpowiedni widok ktory sam sobie dane z modelu zaciagnie, w tym wypadku musialaby byc dodatkowa warstwa pomiedzy na przyklad systemem szablonow, a kontrolerem. Ja osobiscie w kontrolerze decyduje co ma zrobic model, przypisuje widokowi dane z modelu i kaze mu sie sparsowac. Rozni developerzy roznie programuja, mnie osobiscie najbardziej przypasowal jak do ten pory MVC zaimplementowany w Zend Frameworku. Innych nie probowalem jedynie czytalem pare tutoriali. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 8.10.2025 - 01:21 |