![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 1 Dołączył: 15.02.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam pytanie czysto teoretyczne. Buduje strone i chce ja oprzec na wzorcu MVC. Wspieram sie Smarty i Pear przy tym. I teraz moje pytania. 1. Czy za widok maja byc odpowiedzialne tylko szblony smarty czy tworzyc do niego osobna klase? 2. Poza przypisaniem danych ktore uzyskuje z modelu, podstrony roznia sie tez wygladem(dokladnie tlami glownej tresci), jaka czesc MVC powinna byc odpowiedzialna za ustwienie przykladowego tla? Rozwazam dwa przypadki, nie wiem jednak ktory bylby "najczystrzy" jesli chodzi o zalozenia ww wzorca. Pierwszy to to ze poszczegolne metody kontrolera przypisauja do szablonu smarty, dane z modelu oraz w kazdje metodzie jest deklarowana zmienna odpowiadajaca za tlo strony i tak tez przypisywana do szablonow. Drugie rozwiazanie to takie, ze w akcjach kontrolera wogole nie zajmu je sie ustawianiem tla a tylko wyborem widokow. W takim przypadku jednak ilosc szablonow musialbym odpowiednio rozmnozyc. Czytam dosc spro na temat mvc, moje doswiadczenie z frameworkiem cakePHP wcale nie rozwialo wszelkich watpliwosci jednak, przynajmniej tych teoretycznych. Rozumiem ze wzorzec jest raczej czyms abstrakcyjnym i elastycznym niemniej na forum znalazlem taka definicje widoku: Cytat Główna zasasda MVC jest to aby w modelu byl tylko kod php a w VIEW tylko html Natomiast w jednym z rtykulow na wortalu opis brzmi juz tak: Cytat Widok powinien wykorzystywać model do pobrania danych, które będą wyświetlone. Typowo, widok powinien utworzyć instancje klas modelu i wywołać metody odpowiedzialne za pobranie odpowiednich danych. Tym, czego należy się wystrzegać w widoku, jest modyfikacja danych. Widok nie powinien zmieniać w żaden sposób stanu aplikacji. Powinien np. wyświetlać listę użytkowników, ale nie powinien ich dodawać ani usuwać. Rozbieznosc jest wiec dosc spora... Jak najlepiej wedug Was zarac sie za to, w przypadku niewielkiej aplikacji? Z gory dzieki i pozdrawiam! |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
@sanchoo
No i co za różnica że model nie pobiera danych z DB tylko z katalogów? Zwraca listę, a skąd ją bierze to nie ważne, umie ją posortować. A pole w każdym rekordzie powinno mieć ten sam typ, co w tym przypadku wielkość ale tez jednostkę. Więc nadal to model powinien umieć posortować dane podstawowe. Czy je przefiltrować. @bim2 Czy mi się wydaje, czy możesz tylko z jednego modelu na raz korzystać? A do tego model musi wiedzieć jak przekazać dane do widoku, co powoduje że zmieniając widok, czy model musisz zmienić ten drugi. Aby zmienić model musisz zmienić akcję, więc jeszcze dodatkowo musisz ingerować w model, zamiast ustawić tylko odpowiednie przypisanie danych do widoku. Ciągle jest zależność między modelem a widokiem, a obaj zależą też od akcji, czyli masz wszędzie zależności, gdzie tu rozbicie gdzie MVC? Przecież ten wzorzec ma właśnie służyć do jak najmniejszej zależności i przenikania się warstw odpowiedzialnych za różne rzeczy. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 27.09.2025 - 01:10 |