![]() |
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: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
@FanFataL: Łady rysunek, ale brakuje mi w nim jednego - gdzie są strzałeczki pomiędzy Widokiem, a Modelem? - bo to one są w sumie najważniejsze. I dlaczego dane płyną przez kontroler, skoro Widok powinien sam odpytać Model, odpowiednio go do tego przygotowując wcześniej?
O ile jeszcze mogę zrozumieć brak strzałeczki z Modelu do Widoku (bo środowisko webowe uniemożliwia istnienie takiej), o tyle brak strzałeczki z Widoku do Modelu i podpis "Resulting Data Arrays" z Modelu do Kontrolera (gwoli ścisłości: Model może zwracać do Kontrolera jakieś dane, ale nie w celu przekazania ich przez ostatniego do Widoku) to zaprzeczenie idei tego wzorca. Schemat, który pokazałeś to model wykorzystywany w większości FW. I dobrze! On jest całkiem dobry, sam pracując w PHP z reguły z czegoś takiego korzystam. Ma nawet swoje zalety względem MVC. Ale... on nie ma wiele wspólnego z MVC samym w sobie. Istnieje trójpodział aplikacji, ale działa on inaczej niż w przypadku tego cholernego MVC. Co więcej taki schemat z reguły oznacza, że Kontroler wykonuje większość logiki, która powinna spocząć na Widoku, a ten ostatni jest ograniczany do szablonów HTML/PDF/innych. Cytat Ale jeżeli postępujesz (kodujesz) zgodnie z założeniami danego wzorca to nada go używasz - nie ważne czy używasz php, jsp czy innego języka webowego. I o to rozchodzi się cały problem. Kod, który od początku nie jest pisany z założeniami MVC, jest nazywany kodem MVC. Nie byłoby problemu, gdyby nazywano go kodem XYZ, który wywodzi się z MVC, ale nazywanie czegoś diametralnie innego (bo to już nie jest modyfikacja, to jest kompletnie inna architektura) czymś czym nie jest?Ot weźmy takiego MVP. "Twórcy" wzięli MVC, przerobili go i trzeźwo myśląc uznali, że modyfikacje są na tyle duże, że to już nie jest MVC - więc nazwali to sobie MVP. O ile się nie mylę w przypadku takiego MVVM było podobnie. MVA - też podobnie. Cytat Przypominasz zatwardziałego JAVA'owca który krzyczy "OMG, OMG on pisze w językach skryptowych - on nie jest programistą bo nie kompiluje" ... Nie, ponieważ nie uważam, by model używany w FW był zły. On nie jest lepszy, nie jest gorszy, jest po prostu inny.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 02:08 |