Witaj, Gościu O nas | Kontakt | Mapa
Wortal Forum PHPEdia.pl Planeta Kubek IRC Przetestuj się!

Model View Controller

Kontroler

Kontroler otrzymuje i interpretuje żądanie i przekazuje je do odpowiedniego modelu albo widoku.

Kontroler jest odpowiedzialny zazwyczaj za wzywanie(włączanie) metod z modelu, w celu zmienienia jego stanu. W aktywnym modelu, zmiany te odbijaną się w widoku przez zmianę mechanizmu obsługi. W modelu biernym (pasywnym) kontroler jest odpowiedzialny za obwieszczenie widokowi kiedy ma zostać zaktualizowany, czyli pobrać dane z modelu.

W MVC kontroler nie jest mediatorem pomiędzy widokiem i modelem. Innymi słowy kontroler nie znajduje się pomiędzy widokiem i modelem. Zarówno kontroler jak i widok maja jednakowy dostęp do modelu. Kontroler nie kopiuje danych z modelu do widoku, pomimo że mógłby pobierać dane od modelu i oznajmiać widokowi iż zaszły zmiany w modelu. Zobacz Presentation Abstraction Control tam warstwa kontrolera spełnia role mediatora pomiędzy prezentacja, a abstrakcja.

Słowo kontroler jest przeciążane(**ale to zabrzmiało obiektowo :-) **) przez różne rozumienie go w innych wzorcach. Zobacz what is a Controller Anyway (**czym jest więc kontroler**) przedstawionych jest tam parę wzorców z kontrolerem: Front Controller pełni rolę jedynego miejsca analizy danych napływających z HTTP. Page Controller kontroluje przepływ logiki dla danej pojedynczej strony. Application Controller kontroluje całą jedną aplikacje.

Ponieważ popularny MCV framework Struts implementuje kombinacje Front Controller i Application Controller, nie którzy ludzie przypuszczają, że to jest to pod czym rozumie się pojęcie kontrolera we wzorcu MVC dla aplikacjach internetowych. Z tego samego powodu wiele opisów wzorca Front Controller dla sieci WEB nie nakreśla wyraźnie różnic pomiędzy Front Controller i Application Controller.

Informacje na podobny temat:
Wasze opinie
Wszystkie opinie użytkowników: (4)
Nuda
Czwartek 20 Sierpień 2009 7:22:31 pm - mistrzhtml

Rzeczywiście wyjątkowo nudny artykuł. Przecież model MVC to dobry materiał na ciekawą treść, jakiś antytalent to pisał. To jak z nauczycielami - w Polsce wystarczy mieć wiedzę z danej dziedziny i można już pracować w szkole. A ponad połowa nauczycieli się do tego nie nadaje.

Też tak potrafię :)
Niedziela 06 Kwiecień 2008 10:27:55 pm - yaotzin <yaotzin1_at_o2.pl>

Model-Widok-Kontroler jest frameworkiem określa pewien sposób pisania aplikacji[39] polegający na podziale aplikacji na trzy warstwy:
1. Model &#8211; odpowiada za sposób przechowywania danych, w niektórych publikacjach można się spotkać ze stwierdzeniem, że model to źródło danych. Modelem może być baza danych, pliki tekstowe lub pliki XML, a nawet zasoby położone na innym serwerze. Najistotniejsze jest, to aby model w MVC ukrywał przed aplikacją na czym pracuje udostępniając jej jedynie interfejs do zarządzania danymi.
2. Widok &#8211; odpowiada za to co widzi użytkownik, inaczej mówiąc zajmuje się prezentacją danych na ekranie w formie zrozumiałej dla użytkownika. W aplikacjach webowych jest to najczęściej dynamicznie generowany (X)HTML.
3. Kontroler &#8211; odpowiada za schemat wymiany danych pomiędzy Widokiem a modelem. Można by rzec, że kontroler w MVC odpowiada za interakcję użytkownika z modelem danych. W rzeczywistości kontroler przyjmuje dane żądania, pobiera dane od modelu i przekazuje je widokowi. Może również pobrać dane z widoku i przekazać je do modelu. Kontroler jest jedynym miejscem w którym powinien nastąpić kontakt widoku z modelem.
Sam Framework MVC nie jest stosowany tylko przy aplikacjach webowych, ale także w przypadku aplikacji desktopowych w znacznym stopniu ułatwia tworzenie aplikacji i zapewnia jej skalowalność w przyszłości dzięki czemu programista może być pewien, że nie będzie musiał w momencie wprowadzania nowych funkcjonalności lub opcji w aplikacji modyfikować całości jej kodu a jedynie wymaganą jej część.
Przy tworzeniu autorskiego systemu CMS starano się zachować wszelkie założenia zgodne z MVC dzięki czemu aplikacja jest skalowalna i prosta w rozbudowie. Całości dopełnia zaimplementowany system rozszerzeń co w niektórych przypadkach może ułatwić rozszerzenie możliwości aplikacji o dodatkowe funkcjonalności bez konieczności modyfikacji kodu programu.

Re: NatanielX
Wtorek 18 Grudzień 2007 11:00:53 pm - hwao <public_at_hwao.pl>

Tak zgodzę się. Tekst pisany/tłumaczony bardzo dawno temu, nie ukrywam że na swoje potrzeby - potem zaadaptowany żeby wrzucić dla innych.

Artykuł można by było bardzo rozbudować. Dlatego uważam iż najlepszym miejsce dla niego jest "wiki" i pomoc masy ludzi, bez której się nie obędzie - uzupełnienie brakujących wiadomości.

Slabiutko
Piątek 27 Kwiecień 2007 3:11:01 pm - NatanielX

Bardzo kiepsko napisany, suchy i nudny artykul. Bardzo slabe przyklady, masa linkow zamiast konkretow. W jednych miejscach truizmy, w drugich zupelnie niedopowiedziane wazne kwestie. Szkoda, poniewaz o MVC mozna by napisac duzo i ciekawie - jednak nie w ten sposob.

Mentax.pl    NQ.pl- serwery z dodatkiem świętego spokoju...   
O nas | Kontakt | Mapa serwisu
Copyright (c) 2003-2024 php.pl    Wszystkie prawa zastrzeżone    Powered by eZ publish Content Management System eZ publish Content Management System