Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 0 Dołączył: 5.09.2003 Skąd: Kielce Ostrzeżenie: (0%)
|
Ponieważ nie mam dostępu do forum DEV, a wiem, że tam po części problem MVC był poruszany, postanowiłem zadać kilka pytań.
Coraz więcej mówi/pisze się na temat MVC (Model-View-Controller) ale pomimo usilnych starań nie mogę zrozumieć pewnych mechanizmów, tymbardziej, że większość przykładów podawanych jest w Java'ie. Może zacznę od tego co już wiem, jeśli się mylę, proszę poprawcie mnie. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Cała aplikacja składa się z trzech części: :arrow: Kontrolera, który odbiera operacje z zewnątrz (input) i odpowiednio je przetwarza, wywołując konkretny model (modułu) i metodę tegoż modelu. Może również odwoływać się bezpośrednio do widoku. :arrow: Modelu, który jest niejako modułem odpowiedzialnym za jakiś ułamek pracy aplikacji (menu, news, sonda itp, itd.). Także jak widać w przeciwieństwie do kontrollera istnieje wiele modeli. Jak wcześniej wspomniałem model odbiera od kontrolera odpowiednie rządania, przetwarza je i wynik może przesłać do widoku. :arrow: Widok natomiast wszystkie dane wysłane z modelu lub kontrolera wysyła na zewnątrz (wyświetla wynik na WWW, tworzy dokument XML, PDF itp.). Tak więc może być kilka podwidoków, które wywołane przez widok głowny tworzą efekt końcowy widoczny dla użytkownika. A teraz czas na pytania: * w jaki sposób elementy te komunikują się? * wiem, że najbardziej naturalnie będzie zastosować programowanie obiektowe, ale czy da się to zrobić strukutralnie? * co jest w przypadku gdy jeden model jest zależny (potrzebuje danych) od drugiego modelu? * czym są akcje (actions) i łańcuchy (chains)? Jeśli coś pominąłem, proszę dopiszcie, Myślę, że dyskusja na ten temat wpłynie w jakimś stopniu na rozpowrzechnienie tego rozwiązania, a chyba na tym nam zależy, aby łatwiej tworzyć aplikacje webowe i w przyszłości korzystać z już napisanego kodu... |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 521 Pomógł: 0 Dołączył: 3.11.2003 Skąd: 3city Ostrzeżenie: (0%)
|
Oczywiście że model nie powinien korzystać z żadnych globalnych tablic, bo nie ma tam nic co mogłoby być mu potrzebne. Natomiast ciekawe jak napiszesz kontroler który w ogóle nie rusza tablicy $_POST, chociażby bo to aby gdzieś przepisać jej zawartość (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) .
Po co ci wiele kontrolerów? Chyba że mówimy o Page Controller, ale MVC raczej operuje na jednym, centralnym kontrolerze. Jeżeli chodzi o model i akcje to ni <męski narząd moczowo-płciowy> nie mogę nic z tego wyrozumieć. "model to klasa ktora jest interfejsem wywołującym konkretną akcje"? Klasa nie jest interfejsem, to raz. Dwa, że obiekt modelu absolutnie nie powinien wywoływać metody obiektu akcji. Jak by to miało wyglądać? No chyba że mówimy o listenerze w Smalltalku/Swingu, ale to inny MVC niż w php i raczej nie o to nam chodzi (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) . BTW, dlaczego z MVC jest tyle zamieszania? Mi się wydaje że to bardzo naturalny sposób tworzenia aplikacji, i jakby nie był wymyślony, to i tak ludzie sami z siebie by do tego doszli (IMG:http://forum.php.pl/style_emoticons/default/blink.gif) . BTW2, Marcin wyrasta nam na eksperta od MVC, który nie tylko wie co i jak ale i potrafi to łopatologicznie wyjaśnić (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) ---------------------------------------- Grr, dlaczego nie mogę dać 2 odpowiedzi pod rząd? (IMG:http://forum.php.pl/style_emoticons/default/aaevil.gif) @Ozzy: IMHO to nie tak. MVC w Swingu sporo różni się od tego w php, bo inny jest model interakcji. Więcej, MVC w Swingu różni się od tego w JSP i Struts, z takich samych powodów. Natomiast używanie MVC na siłę oczywiście jest stratą czasu. Zwłaszcza w php gdzie wczytywanie kolejnych klas jest tak popieprzone jak jest. php na ogół stosowane jest do prostych serwisów. Serwisy banków już raczej w JSP. Dlaczego? Bo php jest zbyt prymitywny do tego celu. Jeżeli php dalej ma się rozwijać do Personal Home Page, to nie ma problemu, można sobie zlać MVC, wzorce i w ogóle wszystko to co wprowadzili w PHP5 bo bez tego też się da. Ale całe te zmiany idą (chyba) w kierunku uczynienia z php dobrego języka na poziomie "enterprise". I wtedy Smarty przestaje wystarczać, i trzeba pomyśleć np. o modyfikowalności itd. |
|
|
|
Zepco [MVC] Pytań kilka... 27.01.2004, 23:49:48
rzseattle No wiec tak sorry ale odpowiem nie po kolei :
ad ... 28.01.2004, 06:44:34
radziel Re: [MVC] Pytań kilka... 28.01.2004, 09:45:57
rzseattle Re: [MVC] Pytań kilka... 28.01.2004, 13:51:40
radziel Re: [MVC] Pytań kilka... 28.01.2004, 14:11:11
Zepco CytatNo wiec tak sorry ale odpowiem nie po kolei :... 28.01.2004, 15:50:32
rzseattle CytatNie wiem czy dobrze rozumiem, ale w pliku kon... 28.01.2004, 16:03:04
Zepco Specyfikacja URLa oczywiście nie ma znaczenia i za... 28.01.2004, 18:20:48
radziel CytatSpecyfikacja URLa oczywiście nie ma znaczenia... 28.01.2004, 18:32:24
rzseattle CytatSpecyfikacja URLa oczywiście nie ma znaczenia... 28.01.2004, 18:39:50
kubatron A mógłbym zapytać gdzie to można ściagnąć jak zain... 28.01.2004, 21:10:05
scanner Jeden z dostępnych: http://phiend.sourceforge.net 28.01.2004, 21:48:24
Nalfein][WR CytatNie wiem czy dobrze rozumiem, ale w pliku kon... 29.01.2004, 13:49:18
bumelang CytatJak juz wspomnialem model jest klasa tworzaca... 4.02.2004, 00:15:33
rzseattle Cytatzaś całość logiki zawiera się w modelu.
Musz... 4.02.2004, 00:48:46
bumelang Wszystko wskazuje na to, że mamy odmienne pojęcia ... 4.02.2004, 09:54:56
rzseattle CytatWarstwa druga, która jest najczęściej modelem... 4.02.2004, 11:22:27
bumelang Być może to jest OT, ale nie wiem, czy można nazwa... 4.02.2004, 11:46:58
Zepco Jak dla mnie takie OT mogą być, o ile mieszczą się... 4.02.2004, 12:18:48
Sh4dow Moze troche sie wtrącam do waszej zrozmowy, ale mo... 4.02.2004, 12:55:15
hawk CytatJak napisal scanner ze jeden z takich MCV jes... 4.02.2004, 15:22:33
bumelang CytatTak na marginesie chciałem zapytać skąd czerp... 4.02.2004, 15:30:08
DeyV jak już trwa taka zaciekła rozmowa na temat MVC, ... 4.02.2004, 19:27:46
hawk Hmm, ciekawe...
Z tego co na razie widziałem, WACT... 4.02.2004, 22:22:12
scanner CytatHmm, jako autor phienda potwierdzam że proste... 4.02.2004, 22:58:39
cagrET CytatAnyway, gdzie tam jest założenie, że mamy jed... 5.02.2004, 01:41:57
Nalfein][WR CytatJeżeli dobrze doczytałem to doszli do wniosku... 6.02.2004, 15:57:13
hawk Minusów jest więcej:
- Co zrobić, jak tego pliku a... 6.02.2004, 17:25:01
Nalfein][WR Nie wywalili kontrolera, ale wywalili obiekt typu ... 6.02.2004, 21:57:31
hawk Ale warstwa kontrolera bez kontrolera?
To tak jak... 6.02.2004, 22:57:34
Nalfein][WR Chyba za dużo nad Phiendem przesiedziałeś To tak ... 7.02.2004, 12:28:19
cagrET Cytat- Co zrobić, jak tego pliku akurat nie ma? Ko... 7.02.2004, 14:28:31
hawk To w takim razie każda aplikacja w php jest oparta... 7.02.2004, 15:38:42
Sh4dow Hmm, tak szczerze mowiac, to kazda strona napisana... 7.02.2004, 17:03:06
Nalfein][WR CytatTo w takim razie każda aplikacja w php jest o... 7.02.2004, 17:35:12
KaGe Małe wtrącenie na część chyba bardziej toporną i praktyczną 11.05.2004, 00:05:41
marcin96 http://phppatterns.com/index.php/imagecata...clevi... 11.05.2004, 07:10:35
KaGe Kilka pytań 12.05.2004, 00:54:57
marcin96 ad 1) poczytaj dokumentacje phienda )
http://phie... 12.05.2004, 06:11:35
KaGe czyli jak? 12.05.2004, 22:39:58
marcin96 Re: czyli jak? 13.05.2004, 07:43:40
KaGe Jeszcze jedna sprawa z MVC 13.05.2004, 23:27:38
marcin96 Re: Jeszcze jedna sprawa z MVC 14.05.2004, 08:38:47
KaGe Modele 16.05.2004, 01:22:32
hawk Nie rozumiem :? ArticleDataModel i ArticleModel ma... 16.05.2004, 09:27:50
KaGe OK 20.05.2004, 14:59:58
hawk Hmm, zaczynasz od końca... co nie jest jakąś szcze... 20.05.2004, 18:49:22
KaGe HeHe 26.05.2004, 09:30:05
Balin Ja mam pytanie o cos innego.
Wiadomo, ze niektore ... 23.06.2004, 14:01:04
gkeb Ostatnio troche dumałem nad MVC i w związku z tym ... 4.07.2004, 10:43:35
Zepco 1. Z tego co ja już zdążyłem się zorientować, to n... 4.07.2004, 10:52:58
rmn kurcze od jakiegos czasu probuje dowiedziec jak ... 15.07.2004, 22:10:03
Ozzy MVC jest dobre, ale....w Javie:) Przykład: Swing, ... 16.07.2004, 11:10:33
Ace Tak, tez mam takie wrazenie. Wyszedlem z zalozenia... 16.07.2004, 11:21:29
gkeb Tak sobie dumam i dumam i.... :
koncepcja 1:
1.wy... 25.07.2004, 23:01:49
marcin96 Żadna nie jest ;>)
1. index[*] odpala kontrole... 25.07.2004, 23:57:46
gkeb Hehe
Wiedziałem ze sie myle
W mojej koncepcji c... 26.07.2004, 16:11:51
gkeb Co do wielu kontrolerow to zauwaz ze to Marcin wla... 26.07.2004, 22:24:39
hawk Z tymi wieloma kontrolerami to Marcin raczej pisał... 27.07.2004, 11:00:25
marcin96 Cytat(hawk @ 2004-07-27 11:00:25)Z tymi wielo... 27.07.2004, 11:30:50
aleksander witam,
więc bez zbędnych wstępów parę pytań:
1.... 30.10.2004, 15:07:53
bela_666 Cytat1. nie wiem czy dobrze rozumuje: model to cze... 30.10.2004, 15:18:47
matid A czy taki przebieg pracy aplikacji jest zgodny z ... 30.10.2004, 15:54:58
aleksander ale teraz wywiązuj się pytanie: jeżeli dodam nową ... 30.10.2004, 18:25:26
ActivePlayer Nie wiem czy moja idea jest dobra ale czy mozna na... 30.10.2004, 21:03:23
matid Cytat(Olo @ 2004-10-30 19:25:26)ale teraz wyw... 30.10.2004, 21:29:47
aleksander no tak, ale jeżeli nowy widok bedzie kozystal z no... 30.10.2004, 21:43:19
dag ArticleModel:
- dodaj
- edytuj
- usun
- get title
... 30.10.2004, 22:32:32
hawk @ogólnie:
Nie ma sensu zastanawiać się, czy model... 31.10.2004, 20:55:35
Vengeance hmm no tak w MVC nigdy nie wnikalem ale teraz moje... 31.10.2004, 21:11:30
hawk Zaczynamy od tego, że mamy ten Article tak jak w t... 2.11.2004, 09:29:23
bela_666 hm dzis sobie w szkole myslałem o mvc i narysowałe... 8.11.2004, 22:39:22
hawk 1. Ja bym to zrobił tak, że Widok może dostać dane... 9.11.2004, 09:33:31
DeyV CytatJa bym to zrobił tak, że Widok może dostać da... 9.11.2004, 09:55:15
hawk @DeyV: ale phiend wcale nie ma routera. Ba, nie zn... 9.11.2004, 10:49:26
Vengeance to moze trzeba opatentowac bill ci opatentowal po... 9.11.2004, 14:17:48
bela_666 Cytat1. Ja bym to zrobił tak, że Widok może dostać... 9.11.2004, 16:51:40
dag bela_666 @ przeczytaj dokładnie artykuł o MVC na p... 9.11.2004, 17:12:40
bela_666 Cytat(dag @ 2004-11-09 18:12:40)bela_666 @ pr... 10.11.2004, 18:56:30
aleksander zapytania nie wymagające akcji: SELECT
zapytania w... 10.11.2004, 18:58:18
hawk @Bela:
Lepiej nie mówmy o zapytaniach, bo w MVC w... 11.11.2004, 09:34:32
bela_666 Cytat(hawk @ 2004-11-11 10:34:32)Lepiej nie m... 12.11.2004, 00:00:03
aleksander ok to mi jeszcze ukazał się taki oto problem:
wyo... 15.11.2004, 15:14:00
hawk Hmm, są dwie zasady:
1. Widok powinien być jeden.... 15.11.2004, 16:47:21
hamlecik Witam,
Mam taki maly OT. Otoz stworzylem sobie os... 17.12.2004, 11:15:45
Ludvik Kontroler z natury tego wzorca jest jeden.
CytatWy... 17.12.2004, 12:35:45
Seth @hamlecik:
Ja to robie w ten sposob:
Mam jeden glo... 17.12.2004, 13:12:42
hamlecik Seth: Wielkie dzieki za rozjasnienie mi sprawy, ch... 18.12.2004, 11:30:28
Seth Faktycznie troche zmodyfikowalem wzorzec ale inny ... 19.12.2004, 13:01:48
Vengeance Pora na moje pytanie
Dwa różne schematy działani... 31.12.2004, 15:35:43
bregovic U mnie to wyglada tak: Wyswietlamy temat:
FrontCon... 31.12.2004, 15:53:30
kurak Vengeance, co u Ciebie robi showTopic? 31.12.2004, 16:25:47
Vengeance to jest akcja wyswietlajaca to co widzisz teraz
t... 31.12.2004, 17:26:42
kurak A po co Ci i showTopic, i showTopicView? Przeciez ... 31.12.2004, 19:00:01
bregovic Zaraz, moment, akcja jest częścią kontrolera - i n... 31.12.2004, 19:07:42
kurak bregovic, sciagnij sobie pdf'a z artem hawka ... 31.12.2004, 19:12:40
bela_666 Cytat(kurak @ 2004-12-31 20:12:40)bregovic, s... 31.12.2004, 19:38:02
Vengeance @kurak :
Cytat(hawk)Powinno być tak:
1) Zawsze ur... 31.12.2004, 20:22:03
kurak Hmmm... no to mamy tu przypadek rozbieznosci zezna... 1.01.2005, 14:33:29 ![]() ![]() |
|
Aktualny czas: 29.12.2025 - 20:05 |