03-03-2011, 04:29
To inaczej:
Wzorzec MVC, o który opiera się idea wszystkich wyżej wymienionych frameworków, jest to wzorzec projektowy (taki wzór wg którego mamy się trzymać by było dobrze). Wymaga on aby aplikacja była podzielona na 3 oddzielne strefy: Model (logika aplikacji), Widok (odpowiedzialny za wyświetlanie wszelkich wyników), Kontroler (kontrola i reagowanie na dane, reakcje użytkownika, napotkane problemy). Takie podejście do tworzenia aplikacji pozwala na łatwiejsze zapanowanie nad nią. Widok jest tylko od wyświetlania danych, kontroler od reakcji a model od logiki. Widok nie musi się przejmować jakie dane i gdzie są przetrzymywane oraz na jakiej zasadzie są przetwarzane. Dostaje on tylko dane, które musi wyświetlić. I odwrotnie model: nie interesuje go gdzie i jak dane, które dostarczy będą wyświetlane. Mówię tu tylko o widoku i modelu, bo ZendFramework reprezentuje podejście MVP (Model - View - Prezenter), gdzie kontroler jest tylko łącznikiem między widokiem a modelem, w prawdziwej aplikacji MVC każdy ten element komunikuje się ze sobą bezpośrednio (jest tak np w YiiFramework).
Framework daje Ci podstawowy szkielet i narzędzia, byś mógł pracować w oparciu o ten wzorzec. Masz aplikację wstępnie rozdzieloną na te 3 składniki. Dostajesz narzędzia, które pozwalają Ci tworzyć cokolwiek (blogi, fora, kalendarze cuda-niewidy). Wszystko jest już w pełni zabezpieczone i przygotowane tak, by spełniać wymagania tego wzorca.
Dlaczego to jest fajne i dlaczego może Ci się przydać?
masz sobie prostą firmową stronkę: 5 podstronek, formularz kontaktowy, logowanie/rejestracja, gdzieś tam poczta firmowa. Wybraź sobie, że musisz zmienić bazę danych z Oracle na MySQL. Od cholery roboty masz nagle co? szukasz wszędzie, gdzie masz połączenie z bazą Oracle i zamieniasz na połączenie z MySQL. I non stop testujesz czy gdzieś czegoś nie zapomniałeś. Prawda?
Mając projekt w MVC wystarczy tylko dodać model obsługujący MySQL (nawet zostawić sobie model Oracle na później np. na inny projekt) i nic więcej. Widok się nawet "nie połapie", że dostał dane z innej bazy i po prostu je wyświetli tak jak zawsze robił. Stworzenie nowej strony? Tworzymy nowy widok, reszta już jest. Minuta i mamy stronkę. Nowy formularz? Dodajemy model formularza, do tego w kontrolerze dajemy obsługę formularza i każemy gotowej klasie we frameworku sprawdzać czy dane w formularzu są poprawne i bezpieczne dla naszego projektu.
Się rozpisałem
Mam nadzieję, że pomogłem!
Wzorzec MVC, o który opiera się idea wszystkich wyżej wymienionych frameworków, jest to wzorzec projektowy (taki wzór wg którego mamy się trzymać by było dobrze). Wymaga on aby aplikacja była podzielona na 3 oddzielne strefy: Model (logika aplikacji), Widok (odpowiedzialny za wyświetlanie wszelkich wyników), Kontroler (kontrola i reagowanie na dane, reakcje użytkownika, napotkane problemy). Takie podejście do tworzenia aplikacji pozwala na łatwiejsze zapanowanie nad nią. Widok jest tylko od wyświetlania danych, kontroler od reakcji a model od logiki. Widok nie musi się przejmować jakie dane i gdzie są przetrzymywane oraz na jakiej zasadzie są przetwarzane. Dostaje on tylko dane, które musi wyświetlić. I odwrotnie model: nie interesuje go gdzie i jak dane, które dostarczy będą wyświetlane. Mówię tu tylko o widoku i modelu, bo ZendFramework reprezentuje podejście MVP (Model - View - Prezenter), gdzie kontroler jest tylko łącznikiem między widokiem a modelem, w prawdziwej aplikacji MVC każdy ten element komunikuje się ze sobą bezpośrednio (jest tak np w YiiFramework).
Framework daje Ci podstawowy szkielet i narzędzia, byś mógł pracować w oparciu o ten wzorzec. Masz aplikację wstępnie rozdzieloną na te 3 składniki. Dostajesz narzędzia, które pozwalają Ci tworzyć cokolwiek (blogi, fora, kalendarze cuda-niewidy). Wszystko jest już w pełni zabezpieczone i przygotowane tak, by spełniać wymagania tego wzorca.
Dlaczego to jest fajne i dlaczego może Ci się przydać?
masz sobie prostą firmową stronkę: 5 podstronek, formularz kontaktowy, logowanie/rejestracja, gdzieś tam poczta firmowa. Wybraź sobie, że musisz zmienić bazę danych z Oracle na MySQL. Od cholery roboty masz nagle co? szukasz wszędzie, gdzie masz połączenie z bazą Oracle i zamieniasz na połączenie z MySQL. I non stop testujesz czy gdzieś czegoś nie zapomniałeś. Prawda?
Mając projekt w MVC wystarczy tylko dodać model obsługujący MySQL (nawet zostawić sobie model Oracle na później np. na inny projekt) i nic więcej. Widok się nawet "nie połapie", że dostał dane z innej bazy i po prostu je wyświetli tak jak zawsze robił. Stworzenie nowej strony? Tworzymy nowy widok, reszta już jest. Minuta i mamy stronkę. Nowy formularz? Dodajemy model formularza, do tego w kontrolerze dajemy obsługę formularza i każemy gotowej klasie we frameworku sprawdzać czy dane w formularzu są poprawne i bezpieczne dla naszego projektu.
Się rozpisałem

Jak pomogłem daj '+'. To nie boli, a ja mam satysfakcję 
Any sufficiently advanced technology is indistinguishable from magic.

Any sufficiently advanced technology is indistinguishable from magic.