![]() |
Tematy na forum Pro mogą zakładać jedynie moderatorzy. W otwartych tematach może pisać każdy, kto ma coś fachowego do powiedzenia. Wszystkie posty nie wnoszące nic do tematu będą natychmiast usuwane, a ich autorzy dostaną ostrzeżenie.
Jeśli uważasz, że jakiś temat jest warty dyskusji na tym forum, zgłoś go w temacie Propozycje.
![]() |
![]()
Post
#1
|
|
![]() Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
Witam,
jako że nie od dziś można zaobserwować rozsiane po blogach i forum (forach?) posty dotyczące MVC czy MVP proponuję rozmowę na temat wzorców architektonicznych w php. |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Czy ja wiem... Jak dla mnie to podane dwa przykłady nie różnią się wiele jeśli chodzi o efekt końcowy. Czemu? Ponieważ i tak najpewniej do widoku trafią te same dane w obu wypadkach gdyby programista trzymał się minimalizmu. Kto pośle do widoku obiekt z 50 zmiennymi, skoro widok wymaga kilku zaledwie? KISS się kłania. W pierwszym wypadku zapewne kontroler gdzieś i tak wywoła model by mu te dane podesłał. Czy będzie taka różnica wielka między wysłaniem żądania danych do modelu by potem te dane (zapewne nawet nie tknięte jakąkolwiek metodą, helperem, whatever) wysłać do widoku (który i tak sobie je zinterpretuje wedle wewnętrznych mechanizmów), a bezpośrednim zestawieniem modelu i widoku? Dla mnie to tylko ciut inny zapis. Różnica w 2, góra 3 linijkach. Ogólnie to co napisałeś to więc nadal nie MVC dla mnie. Gdyby jedynym parametrem było tylko określenie widoku to bym się zgodził. zauważ, że w obu wypadkach i tak nakazujesz by widok skorzystał z określonych danych, tylko raz dajesz mu już konkretne, a w tym drugim mówisz by użył konkretnego modelu. Tak czy inaczej wymuszasz zestawienie tylko że albo pośrednio, albo bezpośrednio.
IMHO MVC ma miejsce gdy kontroler nawet nie musi zestawiać tego połączenia. Kontroler woła po prostu model, który sam decyduje, patrząc na dane, jaki widok wywołać. I vice versa. Kontroler chce dane w określonym widoku, a ten na podstawie owego żądania określa jaki model ma wywołać. Zauważ, że w www jest trudno uzyskać taką autonomię warstw. Trudno bowiem by widok widoczny u usera samodzielnie wywołał model na serwerze bez udziału pośrednika przetwarzającego żądanie. I stąd mamy MVP, czyli to Presenter wie jakie pary modelu i widoku wywołać, by je zestawić. Dzięki temu ten sam element może być wykorzystywany wielokrotnie do różnych celów. Najważniejszy jest tylko "styk" modelu i widoku. Muszą tutaj dane być identyczne zarówno dla strony wysyłającej, jak i odbierającej by zestawienie się powiodło. Jeśli wybiorę widok to musi mi Presenter podesłać dane przez ów widok wymagane. A to, z jakiego modelu, to już mało istotne. Z kolei wybierając model Presenter musi określić w jakiej formie zwrócić. Czy widokiem ma być plik strony www czy może wygenerowany pdf. I właśnie tak działają chyba niemal wszystkie frameworki php. Jawnie zestawiasz te połączenia. To dalekie od autonomii warstw. -------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.06.2024 - 00:42 |