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. |
|
|
|
Spawnm Wzorce architektoniczne 11.10.2010, 17:06:49
destroyerr Wszystkie wzorce mają być w jednym temacie? Jeśli ... 11.10.2010, 17:23:58
Spawnm Temat jest poświęcony wszystkim wzorcom architekto... 11.10.2010, 17:29:07
Crozin Może i lekko flameogennie, ale...
Żadnego z wymie... 12.10.2010, 12:52:35
marcio Podobnie nowszy asp.net nazywa sie jakos asp mvc c... 12.10.2010, 12:59:14
Theqos Najlepszym wzorcem jest nieużywanie wzorców dla sa... 12.10.2010, 13:45:13
Spawnm @Crozin - skoro w php nie da się zaimplementować m... 12.10.2010, 19:35:08
sniver a co to jest?
Kontroler steruje aplikacją i wywołu... 12.10.2010, 20:13:28
marcio @sniver to o czym mowisz to "hmvp/hmvc" ... 12.10.2010, 22:04:50
Crozin CytatPodobnie nowszy asp.net nazywa sie jakos asp ... 13.10.2010, 08:42:33
FanFataL @Crozin nie bardzo się mogę z Tobą zgodzić.
Równi... 13.10.2010, 09:50:04
Crozin @FanFataL: Łady rysunek, ale brakuje mi w nim jedn... 13.10.2010, 13:19:40
Spawnm Co do schematu od FanFataL to rzeczywiście razi br... 13.10.2010, 14:05:15
sniver ajax, ajaksem...z definicji jest to połączenie apl... 13.10.2010, 15:03:11
Crozin CytatZobacz jak działają modele typu pagerSzczerze... 13.10.2010, 15:05:30
FanFataL Cytat(Crozin @ 13.10.2010, 12:19:40 )... 13.10.2010, 15:19:11
sniver @FanFataL: Co to znaczy EOT? 13.10.2010, 15:30:31
Crozin CytatInność polega tylko (albo aż) na miejscu wyko... 13.10.2010, 15:48:11
marcio @sniver http://pl.wiktionary.org/wiki/EOT
Co do t... 13.10.2010, 15:57:37
destroyerr @Crozin symfony jednak ma widok w Twoim rozumieniu... 13.10.2010, 16:07:17
Zyx Kilka tygodni temu jako podsumowanie tej dyskusji ... 10.12.2010, 20:47:50
cojack Cytat(tego prawdziwego):[ 3.01.2011, 20:35:54
phpowiec84 Witam
Jakis czas temu wykonałem framwork którym d... 3.01.2011, 20:54:25
thek Cojack... Nie bądźmy złośliwi Czysty MVC jest nie... 3.01.2011, 21:26:11
Zyx phpowiec84 -> fajne te zaokrąglone ramki. Niezł... 3.01.2011, 22:34:02
cojack thek no ale tego Cytat(tego prawdziwego) nie rozum... 3.01.2011, 23:05:56
thek Najprawdopodobniej moje rozumienie wzorca MVC jest... 4.01.2011, 12:19:22
Cysiaczek Wy nadal to samo...
Pisanie czegokolwiek po to ty... 4.01.2011, 13:26:29
wookieb CytatPisanie czegokolwiek po to tylko, aby impleme... 4.01.2011, 14:10:52
thek A prawda jak zwykle pośrodku Cysiaczek ma rację c... 4.01.2011, 15:00:08
wookieb Cytat(thek @ 4.01.2011, 15:00:08 ) Ni... 4.01.2011, 15:21:18
thek Z komputerem i prockiem to trochę zły przykład Ko... 4.01.2011, 16:10:47
wookieb No i właśnie to co ty teraz zrobiłeś jest popadani... 4.01.2011, 16:15:36
thek To co wskazałem to oczywiście przesada jak sam zau... 5.01.2011, 00:38:33
Cysiaczek Nie miałem zamiaru uderzać w system nazewnictwa. P... 7.01.2011, 18:27:48
Crozin @Cysiaczek: Głupoty piszesz. Mówiąc "MVC... 7.01.2011, 19:50:20
Cysiaczek @Crozin, Pokaż mi konkretny i absolutnie właściwy ... 7.01.2011, 20:45:38
Crozin Chyba tutaj chciałeś podlinkować: http://pl.wikipe... 7.01.2011, 23:08:07
Cysiaczek Link dałem dokładnie taki jaki chciałem.
Tak, masz... 8.01.2011, 20:20:53
Cysiaczek IMHO różnica jest dość ostra, w drugim przypadku m... 8.01.2011, 23:00:00
thek Jak dla me różnica jest tylko taka, że w 1 przypad... 8.01.2011, 23:27:31
Crozin Niektórzy zapomnieli, że w MVC warstwa widoku to n... 9.01.2011, 14:50:19
quality @Crozin piszesz ze MVC nie jest stworzone do HTTP,... 18.02.2011, 15:48:32
baldRASCAL1986 Nie mogę zrozumieć jednej rzeczy... Po co ciągle w... 18.04.2011, 13:06:40
marcio dyskusja umarla smiercia naturalna.... 5.05.2011, 13:55:46
Sagnitor A jakby tak spojrzeć na to z innej strony. Czy jes... 5.07.2011, 15:16:04
LSM Dorzucę swoje trzy grosze.
Ciekawym jest fakt, że ... 25.09.2011, 23:11:07
Crozin @LSM: To co pokazałeś to jedynie podział aplikacji... 25.09.2011, 23:18:32
LSM Widok opisuje, jak wyświetlić pewną część modelu w... 25.09.2011, 23:25:27 ![]() ![]() |
|
Aktualny czas: 4.12.2025 - 15:16 |