Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 30.08.2006 Skąd: Bełchatów Ostrzeżenie: (0%)
|
Witam
W końcu skusiłem napisać (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Niedawno w poszukiwaniu jakiejś teorii pozwalającej oddzielić logikę od widoku itd trafiłem na MVC. Poczytałem, wszystko ok, rozumiem, tylko problem pojawia się przy chęci sprawdzenia teorii w praktyce. MVC zakłada wyraźny podział na warstwy, które ze sobą współpracują i żadna sama w sobie dużo nie zdziała. Stąd moje pytania. 1.Od czego zacząć pisać, lub też najpierw projektować? Klasy powinny pozwalać na przeniesienie ich do innych skryptów, w takim razie (2)jak na przykład pobierać dane z bazy danych jeśli do obsługi MySQL mam osobną klasę? To na razie tyle. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 278 Pomógł: 10 Dołączył: 13.02.2007 Skąd: Rybnik Ostrzeżenie: (0%)
|
Może na początek podkreślę - każdy programista ma inną wizję MVC - to tylko zwykły szablon. To tak jak szablon strony (załózmy z webmark-a, którą dobrze wspominam, niestety - już jej nie ma ;() każdy sobie to lekko przerobi, zmieni, itp. To tak gwoli ścisłości, gdyż to co niżej przedstawię, jednemu się będzie podobało, a drugiemu nie.
Przede wszystkim Kontroller ma zarządzać widokiem i modelem i nic nie wiedzieć o danych. To więc:
Teraz pewnie wiele osób się zapyta, dlaczego to Widok przechowuje w swojej zmiennej instancję klasy Model ? Ano dlatego, żeby w widoku także można było pobierać dane z modelu, gdyż to jest założeniem MVC. Przy okazji jest to wiele wygodniejsze, gdyż jak jest np. lewe menu, które posiada np. blok "losowa fotka", to potem trzeba w każdej metodzie controllera dopisywac te bzdetne linijki kodu, by pobierane były dane z modelu. A po co , skoro można to zrobić jednym zapytaniem w Widoku. Widok ma za zadanie gromadzić dane z szablonow i je zwracać controllerowi, tak więc (pomijam tutaj klasy abstrakcyjne, zeby pokazac oco chodzi - wiadomo - lepiej dziedziczyc sobie niektore metody z klasy abstrakcjii)
Model ma pobierać dane z różnych źródeł i je zwracać, czyli po prostu:
Do tego dochodzi jeszcze FrontController który pobiera sobie z routera kontroller i akcję i odpala odpowiedni kontroller i jego metodę. W moim przypadku (czyt. moj fw) jest coś takiego, że FrontController wybiera kontroller, i później jest coś takiego:
i już wszystko jasne (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Mam nadzieję, że ten post rozwiąże wszelkie wątpliwości co i jak połączyć. Pozdrawiam, Matix. |
|
|
|
dragoste [PHP][MVC] Od czego zacząć? 14.10.2007, 22:18:56
Sedziwoj Po pierwsze skorzystaj z wyszukiwarki (ba na tej s... 15.10.2007, 08:25:13
dragoste Czy wszystkie Twoje 418 postów tak wygląda? Czytaj... 15.10.2007, 14:21:21 
NuLL Cytat(dragoste @ 15.10.2007, 15:21:21... 15.10.2007, 14:45:47
em1X np stworz sobie klasę bazową którą każda klasa będ... 15.10.2007, 14:39:39
dragoste Dzięki za odpowiedzi
Ale jednak jeszcze jedna sp... 15.10.2007, 18:39:23
matix Tak jak pisałem. Jest to kwestia, jak kto woli.
C... 15.10.2007, 18:52:14
dragoste Ok, prawie mnie przekonałeś.
Tylko jeszcze jedna ... 15.10.2007, 19:53:00
matix Tak, musisz zawsze zmienić w każdej metodzie model... 15.10.2007, 21:08:52 
Kiler Cytat(matix @ 15.10.2007, 22:08:52 ) ... 4.12.2007, 12:10:43 
kruk Cytat(matix @ 15.10.2007, 22:08:52 ) ... 29.09.2009, 13:40:32
dragoste 1. Gdzie połączenie z DB? ;> Przegapiłem, czy b... 16.10.2007, 18:47:35
matix Nie, nie Nic nie pominąłem.
Metoda dbConnect() j... 16.10.2007, 19:32:42
matix [PHP] pobierz, plaintext <?phpclass db_exceptio... 24.02.2008, 09:35:00
iro88 Aby nie tworzyć nowego tematu i nieco odświeżyć...... 14.10.2010, 08:07:38
cojack Nie skupiaj się na implementacji, tylko na tworzen... 27.10.2010, 20:24:39
Spawnm Po ostatnim poście stwierdzam że iro88 nie zna pod... 27.10.2010, 20:31:54 ![]() ![]() |
|
Aktualny czas: 26.11.2025 - 04:45 |