Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> MVC, a co z całą resztą?
Asmox
post
Post #1





Grupa: Zarejestrowani
Postów: 359
Pomógł: 12
Dołączył: 16.01.2009

Ostrzeżenie: (0%)
-----


MVC jest oczywiście jest wzorcem na ściąganie danych i obróbkę i wyświetlenie. Ale co z całą resztą? Można napisać klasy do tylko potrzebnych rzeczy, ale gdzie je poumieszczać i gdzie dawać ich wywołania?
Powiedzmy, że mam taki układ folderów:
Kod
application
|- models
|- views
|- controller

I napisałem sobie klasę powiedzmy do obsługi sesji. Gdzie ją umieścić i gdzie wstawiać kod operujący na tej klasie? Mam na myśli bardziej ogólne rozwiązanie, bo nie wiem co robić z różnymi dodatkowymi klasami, które nie mają nic wspólnego z MVC, ale są mi równie potrzebne
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Asmox... Najprościej i najogólniej rzecz ujmując można napisać tak:
Model - operuje na danych, różnych jego formach, manipuluje nimi.
View - służy do prezentacji danych.
Controller - steruje przepływem informacji i procesami aplikacji.

Rzuciłeś sesją. Ma ona gdzieś pokazywana? Nie. Wylatuje widok. Czy sesja w jakiś sposób steruje przepływem informacji w aplikacji? Nie sama w sobie jest informacją i sama siebie kontroluje oraz modyfikuje. Jest więc warstwą operacji na danych - jest więc modelem.

Rzucasz filtry przykładowe? Proszę bardzo... Zwróć uwagę, że to nic innego niż zmiana, manipulacja danymi, nie wykraczająca dalej. Nie są one bowiem ani wyświetlane, ani nie jest wymagana ingerencja zewnętrzna w ten proces. Dostajesz polecenie: weź A i zrób z tego B. Znowu kłania się warstwa modelu. Warstwy mogą ze sobą współpracować.Przykład? Widok wyświetla pewne informacje, które idą do Kontrolera. Ten decyduje na podstawie działań użytkownika, że Model musi zmienić strukturę danych do innej formy i przekazać ją do Widoku ponownie.Na tym właśnie polega MVC. Rozgraniczanie obsługi pewnych czynności i funkcjonalności do wybranych warstw za nie odpowiedzialnych.

Tak jak powiedział Zyx... Nie zrozumiesz, lub zrobisz to w sposób niekoniecznie dobry jeśli zaczniesz naukę "od dupy strony" (IMG:style_emoticons/default/winksmiley.jpg) Nie buduje się samolotu, nie mając pojęcia o aerodynamice. Tak samo zrozumienie wzorców projektowych bez zrozumienia czym jest i z czym się je programowanie obiektowe, jest zwyczajnie skakaniem do wody bez znajomości dna. Niektórym się uda złapać ideę "na czuja" ale część złamie kręgosłup.

Ja przez naprawdę długi czas nie wiedziałem o czymś takim jak wzorce projektowe. Ale nieświadomie je stosowałem bo wychodziły naturalnie podczas pisania. gdy zacząłem je poznawać po prostu usystematyzowałem wiedzę i tyle. Różnica jednak polegała na tym, że zanim zacząłem je stosować świadomie, miałem już kilka lat nauki obiektówki w C++ i liźnięcie Javy, która jest bardziej rozbudowana w tych dwóch językach niż w PHP. Tam specyfikatory dostępu, dzielenie zakresów działania, dziedziczenie, hermetyzacja są naturalnym elementem języka. Obiektówki się na tej bazie można uczyć i zrozumienie potem tego co w PHP lub dowolnym innym języku z nią próbują zrobić jest analogiczne. Są różnice, ale znając ogólne zasady widzisz tylko je w porównaniu do standardu. I tylko ich się uczysz. Dzięki temu nie uczysz się standardów kilku języków, ale jeden i różnice w stosunku do niego. Jest to prostsze.
Go to the top of the page
+Quote Post

Posty w temacie
- Asmox   MVC, a co z całą resztą?   14.12.2010, 16:47:35
- - skowron-line   Układ katalogów to akurat najmniej istotna sprawa....   14.12.2010, 17:06:12
- - Crozin   Tak się składa, że akurat tzw. "sesja" t...   14.12.2010, 17:23:06
- - Asmox   No dobra, to inny przykład: filtr danych, który za...   14.12.2010, 18:13:22
- - Crozin   Dobra to inaczej:CytatMVC jest oczywiście jest wzo...   14.12.2010, 19:00:41
- - Zyx   Asmox -> to też jest model korzystający z usług...   14.12.2010, 22:31:22
- - thek   Asmox... Najprościej i najogólniej rzecz ujmując m...   15.12.2010, 00:23:55
- - Kuziu   Podczepię się pod temat thek napisałeś: CytatMod...   16.12.2010, 01:11:29
- - Crozin   1. Nie, MVC akurat w ogóle nie określa jak ma zost...   16.12.2010, 02:35:51
- - Kuziu   Czyli powinienem mieć np. klasę modelu obsługującą...   16.12.2010, 09:58:40
- - Zyx   Podstawowe kryterium brzmi: czy Twoja architektura...   16.12.2010, 10:15:08
- - Kuziu   Nie ograniczam się tylko do ORM chociaż szczerze m...   16.12.2010, 11:38:04
- - Crozin   1. Model nigdy, ale to absolutnie nigdy nie powini...   16.12.2010, 13:19:44
- - Zyx   Najprostszy możliwy przykład: masz sobie widok do ...   16.12.2010, 15:45:24
- - thek   W przypadku edycji posta i MVC część wyjaśnił Ci j...   16.12.2010, 15:58:13
- - Crozin   @thek: Ad. 1) Chyba na odwrót? Bo jak model miałb...   16.12.2010, 16:25:28
- - zzeus   No to ja też mam małe pytanko w temacie, gdzie np....   17.12.2010, 09:56:07
- - marcio   Cytat(zzeus @ 17.12.2010, 09:56:07 ) ...   17.12.2010, 11:01:37
- - thek   ad1) i tutaj właśnie dotykamy tego czym jest fakty...   17.12.2010, 11:20:24
|- - mike   Cytat(thek @ 17.12.2010, 11:20:24 ) T...   17.12.2010, 11:49:29
- - Crozin   1) Pytałem w kontekście aplikacji webowej, gdzie j...   17.12.2010, 11:48:05
- - Zyx   Widok to też nie szablon. Klasyczny przykład: gdzi...   17.12.2010, 12:00:49
- - marcio   CytatSprawdzanie poprawności danych zasadniczo tak...   17.12.2010, 12:25:05
- - Crozin   CytatW takim razie wykluczamy kontroler praktyczni...   17.12.2010, 12:29:45
- - marcio   CytatModel jest najbardziej rozbudowaną warstwą ap...   17.12.2010, 12:38:49
- - Crozin   W MVP nadal będziesz miał model-kobyłę. Aż tak wie...   17.12.2010, 12:48:39
- - thek   Mike, Zyx: Wiem, ale to, że Widok nie ma możliwośc...   17.12.2010, 12:57:37


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 9.10.2025 - 08:52