Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Artykuły _ Wprowadzenie do MVC [hawk]

Napisany przez: Seth 21.03.2004, 23:37:32

Uwagi, pytania zwiazane zwiazane z artykulem hawka "http://wortal.php.pl/phppl/wortal/artykuly/php/architektura/wprowadzenie_do_mvc" prosze pisać w tym temacie.

Napisany przez: Holyboy 22.03.2004, 13:39:33

Mniam mniam - ten artykul i polska dokumentacja Phiend'a biggrin.gifD

Jednakze jest pewien powazny problem - wydrukowac nadal to sie latwo nie da - niestety, panowie ta ikonka drukuj jest nic nie warta w sumie...

Tak wiec moja propozycja roszerzenia funkcjonalnosci - trzeba dodac cos w stylu "Drukuj zawartosc dzialu" - najlepiej jak bedzie wysylalo plik PDF

Moja drukarka juz piszczy na wiesc o drukowaniu Manuala Phiend'a biggrin.gifD
Jak bedzie piszczec za czesto i za glosno to recznie to zloze i wrzuce do PDFa

Napisany przez: It's_me 22.03.2004, 13:43:04

dzis bede w domq pracowal nad pdf wiec poglaszcz swoja drukareczke niech poczeka i dostanie to na co czeka ... .

Napisany przez: scanner 22.03.2004, 13:43:25

PDF: http://forum.php.pl/viewtopic.php?t=13877

Napisany przez: Indeo 26.03.2004, 19:10:03

A gdzie mozna poczytac coś więcej o problematyce MVC?
Jakieś szersze informacje, przykłady? Gdzie wogóle można poczytać o organizacji kodów php itd.

Pozdrawiam

Napisany przez: Nalfein][WR 26.03.2004, 20:41:15

Tutaj: http://mvc.ag.bocznica.org/ winksmiley.jpg

Ciekawe rzeczy piszą też na http://www.phppatterns.com .

Napisany przez: Indeo 26.03.2004, 22:16:59

Any polish literature?

Napisany przez: hawk 27.03.2004, 10:23:15

Niestety, w naszym pięknym ojczystym języku literatura fachowa jest skąpa. Cóż, taka profesja...

Do linków dorzucę jeszcze http://msdn.microsoft.com/practices/type/Patterns/Enterprise/DesMVC/.

Napisany przez: Indeo 27.03.2004, 10:33:21

Cóż a może wogóle przydałaby się jakaś wykładnia nie koniecznie z kręgu filozofii światowej ale poparta własnymi doświadczeniami w zakresie budowania aplikacji php. Od dłuższego czasu buduję takie aplikacje ale jest w nich bałagan, czasami prowadzi to do tego że kilka razy pobieram z bazy te same zmienne, a czasami wręcz dochodzi do kolizjii nazw zmiennych. Pogubiłem się w tym wszystkim. Czasami aż strach pomysleć co ten program właściwie robi (od ponad roku parsuje i wrzuca do MYSQL'wej bazy dane pochodzące z baz PROGRESA (nie mylić z postgresem!)) na ich podstawie generuje pisma, umowy itd.

Kiedy patrzę np. na taki MAMBO_SERVER, jak tam wszystko jest ładnie poukładane, prawie kazdy skrypt składa się z instrukcji typu $obiekt_X->zrób_to(), obiekt_Y->zrób_tamto(). Nie to co u mnie.

Chciałbym aby ktos podzielił sie ze mną jakąś swoją sprawdzona filozofia wtej dziedzinie. Nie chodzi o jakies górnolotne wywody ale po prostu o to które zmienne zawsze trzymac wsesjach a których nie, jak rozegrać same pliki skryptów, ile i jakie klasy tworzyć etc.

Pozdrawiam

Napisany przez: hawk 27.03.2004, 14:50:02

To nie jest chyba coś co można wytłumaczyć w ramach jednego postu :? . To jest raczej coś czego człowiek/programista uczy się całe życie.

Moja rada: trzeba "czuć" obiektowość. Polecam http://www.php.pl/index.php/phppl/artyku_y/aplikacje_internetowe/architektura/oo_programowanie_obiektowe_w_praktyce i http://www.phppatterns.com/. Wzorce, wzorce...

Chyba jednak wyszły z tego górnolotne wywody :? i nie podam ci jakiegoś wspaniałego rozwiązania dot. np liczby klas. Odpowiedź brzmi: "to zależy i tylko ty możesz to ocenić". Gdyby było inaczej to zrobiliby jakiegoś mega-super-programującego-robota i nie byłoby dla nas pracy laugh.gif .

Napisany przez: cagrET 19.04.2004, 14:28:44

Polecam artykuł na temat wzorców projektowych:
http://phppatterns.com/index.php/article/articleview/103/1/1/
ROX ~! :D

Napisany przez: halfik 20.04.2004, 14:17:06

no i w tym phparchitekcie co jest z maja 2003 w pdfie za free tez jest art wprowadzajacy snitch.gif

Napisany przez: matid 9.05.2004, 15:15:19

Przydało by się dodać do tego artykułu jakieś przykłady zastosowania, jakiś kod, bo przyznam szczerze że z przerzuceniem się na OOP było u mnie bez problemu tak z MVC męczę się od jakiegoś czasu i po prostu załapać tego nie umiem.

Napisany przez: Jojo 23.06.2004, 12:13:32

W artykule nie wyświetlają się rysunki. Sądzę, że przydałyby się do lepszego zobrazowania przedstawionych tam treści. Czy ktoś mógłby poprawić ścieżki do obrazków tak aby pokazywały się poprawnie?

PS. Pod obrazkami przydałby się też alt na wypadek jakby znowu przestały działać smile.gif

Napisany przez: jupeter 14.07.2004, 15:34:08

A ja mam cholerne problemy z tym MVC. Próbowałem przetestować gotowe skrypty phpMVC (bez jakichkolwiek zmian).

Mam zainstalowanego Apacha 2 + php 5 pod Windowsikiem.
Zmieniałem już konfigurację php.ini w najrozmaitrzy sposób i wciąż wywala mi jakieś błędy.

Ostatnio wywala mi błąd, że nie może znaleść includa, mimo że ma zdefiniowane w main.php include_path (jakby nie widział w ogóle ustawienia tego).

A nie zagłębiając się za bardzo ... czy ktoś postawił u siebie phpMVC i czy mógłby powiedzieć, jak to uczyniłquestionmark.gif

Napisany przez: webdeveloper 2.11.2004, 00:05:47

Witajcie

Na wstepnie chcialem pochwalic za super serwis, wiele ciekawych informacji, a forum to juz w ogole wymiata - iloscia postow jak i poziomem dyskusji. Dzieki, ze jestescie.

A teraz ad rem... tlumaczenie mana do phienda jest ok, ale trudno sie je czyta (co juz wiadomo), nawet powstal pdf, ale jest maly problem - nigdzie nie moge go znalezc, link, ktory podano na stronie - nie dziala (404)... any ideas?

Napisany przez: matid 2.11.2004, 08:07:54

Tylko czy to naprawdę jest prawdziwy model MVC? Bo z tego co ostatnio się dowiedziałem (od osób studiujących informatykę i z różnych artykułów) to autor chyba pomylił pojęcia Sterownik / Kontroler. W modelu MVC mamy Kontroler i jest on odpowiedzialny za modyfikowanie modelu, a w przypadku gdy mamy akcję nie wymagającą modyfikowania danych Kontroler w ogóle nie uczestniczy w działaniu aplikacji.
A w artykule na php Kontroler jest odpowiedzialny za zbieranie żądań od użytkownika i przekazywanie ich albo Widokowi albo modyfikowanie Modelu.
Czy to aby na pewno jest MVC?

Jeśli się mylę, to proszę mnie poprawić, ale nie na darmo słuchałem 3 godzinnego wykładu o MVC od mojego znajomego informatyka smile.gif

Napisany przez: webdeveloper 2.11.2004, 08:58:54

Nie wnikam czy kontroler powinien wykonywac jakies akcje czy nie... z pewnoscia bede pisal, tak aby mi bylo wygodniej (no i zeby mialo to rece i nogi) i oczywiscie zeby w przyszlosci mozna bylo wielokrotnie wykorzystywac raz napisane modele/wzorce... czas pokaze.

btw dla mnie informatyk to "pan kazio instalujacy drukarki w urzedzie miejskim"... w dzisiejszych czasach pisac o kims informatyk, to IMHO obraza winksmiley.jpg, sklanialbym sie tu do wydzielenia w jakiej galezi ow informatyk sie porusza...

Czy wiadomo juz skad mozna zassac pdfa?

Napisany przez: hawk 2.11.2004, 09:15:44

@matid:
Dla mnie to co powiedział znajomy informatyk jest bez sensu.

Co to znaczy "odpowiedzialny za modyfikowanie Modelu"? Pomijając samo MVC, sama idea czegoś takiego jest... dziwna. Jeżeli jakaś moja akcja chce zmienić coś w modelu, prosi Kontroler, żeby poprosił obiekt Modelu, żeby coś tam zmienił? To by była Fasada na Model.

Cytat
w przypadku gdy mamy akcję nie wymagającą modyfikowania danych Kontroler w ogóle nie uczestniczy w działaniu aplikacji

To ja się zastanawiam, jak taka akcja ma się uruchamiać, jeżeli nie ma w tym momencie żadnego kontrolera. Sama z siebie się zainicjuje i uruchomi? Chyba że mówimy teraz o nie związanych ze sobą skryptach rozrzuconych po katalogach - wtedy Apache robi za kontroler.

Zresztą, webdeveloper dobrze mówi. Nieważna jest teoria, ważna jest praktyka. Największym problemem MVC jest to, że ludzie zastanawiają się, co jest słuszne i zgodne z teorią, zamiast zastanawiać się, co dobrze działa.

@webdeveloper:
Potrzebny ci jest PDF z przetłumaczonym manualem, czy PDF z oryginalnym manualem? To pierwsze generuje chyba ez i skutek jaki jest każdy widzi. To drugie gdzieś pewnie mam.

Napisany przez: webdeveloper 2.11.2004, 10:21:39

Cytat
@webdeveloper:
Potrzebny ci jest PDF z przetłumaczonym manualem, czy PDF z oryginalnym manualem? To pierwsze generuje chyba ez i skutek jaki jest każdy widzi. To drugie gdzieś pewnie mam.


Hawk, potrzebuje przetlumaczonego mana z Waszej strony, mana angielskiego zassalem z sourceforga.

Jesli chodzi o pdf generowanego przez ez... albo czegos nie kumam, albo ze mnie jest lamer... nie widze nigdzie bym mogl sciagnac pdf z tlumaczeniem (calym!) mana...

Napisany przez: hawk 3.11.2004, 11:42:32

Moja wina, moja wielka skrzynka wina...

Przetłumaczonego manuala w pdf nie można ściągnąć, bo nie ma linka w ez. Pewnie nie został wygenerowany. Link który dawał scanner wyżej w tym wątku też nie działa. Więc stan jest taki że tego pdf nie ma. Ja nie mam u siebie przetłumaczonych źródeł więc nie mogę sam wygenerować.

Pozostaje ci tylko wersja angielska.

PS Przetłumaczony manual w ez w wersji HTML też jest śmieszny: wstęp znalazł się na końcu blink.gif

Napisany przez: matid 3.11.2004, 19:22:36

Cytat(hawk @ 2004-11-02 10:15:44)
To ja się zastanawiam, jak taka akcja ma się uruchamiać, jeżeli nie ma w tym momencie żadnego kontrolera. Sama z siebie się zainicjuje i uruchomi? Chyba że mówimy teraz o nie związanych ze sobą skryptach rozrzuconych po katalogach - wtedy Apache robi za kontroler.

Nie mówię tutaj tylko o zastosowaniu MVC w php tylko ogólnie w programowaniu.

Uruchamianiem akcji zajmuje się Sterownik (z angielskiego chyba dispatcher) a nie Kontroler. To są dwa zupełnie różne pojęcia i Sterownik nie ma nic wspólnego z MVC.

Napisany przez: hawk 4.11.2004, 09:26:31

Rotfl.

Właśnie napisałeś że uruchamianie akcji nie ma nic wspólnego z MVC.

Możesz napisać trochę więcej o różnicach między sterownikiem a kontrolerem?

Napisany przez: matid 4.11.2004, 21:49:43

Kontroler ma za zadanie modyfikować model. Jeśli prosimy o coś kontroler, to dlatego, że coś się odwołuje do modelu w sposób wymagający nad nim kontroli.

Sterownik ma za zadnie wywoływać odpowiednie akcje na podstawie danych otrzymanych od użytkownika.

MVC nie przewiduje takiego czegoś jak Sterownik, tzn. nie jest to intergralną częścią MVC. Tak samo jak nie jest nią uruchamianie akcji.

MVC można często uprościć do tylko 2 warstw, mianowicie następuje do połączenia Modelu z Kontrolerem i w tedy aplikacja, która chce zmodyfikować model odwołuje się bezpośrednio do niego.

Napisany przez: hawk 5.11.2004, 09:12:31

Cytat(matid @ 2004-11-04 21:49:43)
Kontroler ma za zadanie modyfikować model. Jeśli prosimy o coś kontroler, to dlatego, że coś się odwołuje do modelu w sposób wymagający nad nim kontroli.

Bzdura. Jak można "kontrolować" model? Kontrolować to można przepływem sterowania itd. Pomijając nieścisłości językowe, możesz napisać, w jaki sposób kontroler modyfikuje model? Zaczyna mnie to interesować winksmiley.jpg.

BTW, "odwoływanie się do modelu w sposób wymagający nad nim kontroli" biggrin.gif

Napisany przez: Leezard 10.03.2005, 11:16:47

witam

zaczynam sie zapoznawac z frameworkiem Mojavi 2.0 ,w zwiazku z tym mam pytanie: jesli mam funkcjonalnosc edytowania danych uzytkownika, to jak to powinno byc zgodnie z MVC rozwiazane. Ja to widze tak i prosze o korekte myslenia biggrin.gif

1. podczas pokazywania wypelnionego formularza zmiany w akcji nie robie nic poza wywolaniem odpowiedniego widoku, w ktorym tworze instancje modelu, pobieram za jego pomoca dane z bazy i wyswietlam
2. po wyslaniu danych przez POST wywoluje w akcji metode execute() ktora zapisuje dane w bazie, i dopiero prechodze do odpowiedniego widoku, tworze instancje modelu, pobieram dane i wysiwetlam

Czy pobranie danych z bazy nie jest elementem Logiki Biznesowej? Bo w koncu operuje to w jakis sposob na bazie danych. Czy poprawne jest pobieranie danych w widoku, czy powinny one zostac pobrane w akcji i poprzez obiekt request dopiero przekazane do widoku, ktory pobierze je z requesta i wyswietli?

z gory dizeki z a odpowiedz
pozdrawiam

Napisany przez: dag 10.03.2005, 12:12:27

Pobierasz czy zapisujesz dane powinienes to robic poprzez MODEL. To on komunikuje sie z danymi (baza danych, itp.).

np.
widok -> model -> db
akcja -> model -> db

Napisany przez: Leezard 10.03.2005, 13:06:37

to wiem,
czyli w momencie jesli zadanie uzytkownika nie musi wprowadzac zmian w bazie danych, wtedy nie potrzebuje robic nic w akcji oprocz zwrocenia odpowiedniego widoku, a w widoku dopiero wyciagac dane z bazy i wyswietlac? a w momencie jesli musze zrobic jakas operacje na bazie to robie to w akcji (przy pomocy modelu), a w widoku znowu pobieram dane po aktualizacji i wyswietlam?

Napisany przez: ebe 13.03.2005, 17:28:41

Cytat
a w widoku dopiero wyciagac dane z bazy i wyswietlac


Nie, widok też operuje na modelu. widok -> model -> baza

Pytanie: Czy widok należy utożsamiać z systemem szablonów, czy jest to coś więcej?

Napisany przez: bela_666 13.03.2005, 17:54:11

@ebe widok to coś więcej, widok jest sposobem prezentacji, może to być xhtml, wap, pdf, co tam chcesz.

Napisany przez: ebe 13.03.2005, 18:32:58

W takim razie jak połączyć widok z systemem szablonów?
Widok posiada w sobie model, do tego np. podtytuł podstrony i nazwę pliku szablonu dla tego modelu (bo przecież nazwy pliku szablonu nie trzymamy w modelu) i n innych rzeczy. Czy kontroler ma wrzucać do obiektu widoku instancję szablonu lub widok ma tworzyć własną instancję przez singleton i w widoku ma się odbywać assignowanie do szablonu. Czy też jakoś inaczej? Mowa o przypadku (x)html bo np dla pdf'a widok utworzy klasę odpowiedzialną za generowanie pdf, a nie szablon.

Napisany przez: markac 26.08.2005, 07:17:10

Cytat
Error: Cannot write to output dirs in ActionController.class.php on line 129
http://phiend.sourceforge.net/application/

Pfff winksmiley.jpg

Napisany przez: .rh- 13.07.2006, 07:37:27

Cytat(ebe @ 13.03.2005, 16:28 ) *
Nie, widok też operuje na modelu. widok -> model -> baza


W jakim sensie operuje? Przeciez Widok nie moze zmieniac modyfikowac modelu...

Napisany przez: TomASS 13.07.2006, 14:27:45

Chętnie poczytałbym ten artykuł, ale niestety link nie działa :/
Link do pdf także nie działa http://forum.php.pl/viewtopic.php?t=13877.

Napisany przez: nospor 13.07.2006, 14:35:03

@TomASS a wystarczylo tylko na wortalu wpisac tytul do wyszukiwarki i co bys znalazl?
http://wortal.php.pl/phppl/wortal/artykuly/php/architektura/wprowadzenie_do_mvc
smile.gif

zaraz poprawie tez w pierwszym poscie

Napisany przez: TomASS 13.07.2006, 14:37:43

Oczywiście dałem ja sobie radę - napisałem to w imieniu kogoś kto by nie mógł znaleźc.

Co nie zmienia faktu, że link do PDF'a nie działa.

Dobrze nospor, że czuwasz tongue.gif

Napisany przez: nospor 13.07.2006, 14:40:00

oj z tym pdf to tez mogles sam poradzic... tongue.gif
masz tam id topicu i to najwazniejsze. teraz tylko pobierasz aktualny url do topicow, wstawiasz to id co masz i juz
http://forum.php.pl/index.php?showtopic=13877

Napisany przez: domis86 13.05.2007, 00:37:28

Co do MVC to bardzo polecam książeczke o tytule :
"PHP architects guide to PHP design patterns: a practical approach to design patterns for PHP 4 and PHP 5 developer"

(znajdują sie tam tez opisy wielu innych wzorców)


zamiescilbym tu linka na rapida z tą ksiazeczką, ale jescze mi konto miłe biggrin.gif

ps->szukajcie "php design" na blueportal.org (w dziale search a nie w tym googlowym) aarambo.gif

Napisany przez: Exodus 23.10.2007, 12:41:03

Artykuł cudo. nic tylko czytac smile.gif

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)