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




ad1) i tutaj właśnie dotykamy tego czym jest faktycznie i jak powinno działać MVC (IMG:style_emoticons/default/smile.gif) W tym wzorcu każda z warstw może wywołać pozostałe. Jeśli tak napiszesz Model, że może sam zadecydować o formie wyjściowej danych (html, xml, pdf, co_tam_chcesz) na podstawie jakichś przesłanek podczas operacji na nich (informacja zaszyta w nich, przykładowo jako pole w bazie informujące z czym mamy do czynienia lub jaka jest preferowana forma), to powiedz mi, czy to nie jest wtedy możliwe? (IMG:style_emoticons/default/winksmiley.jpg) Nie wychodzimy bowiem z Modelu nawet na ułamek sekundy. W zależności od typu Model sam zgłosi chęć wykorzystania właściwego dla danych Widoku. Tak samo Widok, poprzez użycie AJAX może bezpośrednio wywołać Model, by powiedzieć "daj mi tu inne dane, migiem!". Wiem, że mówię dość ogólnie teraz, ale na tym właśnie idea MVC prawdziwego polega. Każda z warstw ma bezpośredni dostęp do siebie, nie jak w pseudo-MVC, gdzie przykładowo Kontroler zestawia połączenie między Modelem i Widokiem.

ad2) Masz rację. Ale czyż widoki nie są tak naprawdę szablonami? Widok ma po prostu dostać dane i je zaprezentować w jakiejś formie, którą ma zaprogramowaną. W zależności od danych może je nieco inaczej przedstawić, ale na tym się jego funkcjonalność kończy. Zmiana formy prezentacji pociąga za sobą pewne zmiany w pracy Modelu, przestawienie go na nieco inny tryb, gdzie używa innych funkcji własnych. Najprościej to "pokazać". Masz dane które normalnie wyświetlasz jako strony, ale możesz także w GUI określić, że "jeśli mam ten przełącznik aktywny w widoku, to nie wyświetlaj ich, ale zwracaj mi w wyniku pliki pdf.". Takie działanie zmusiło by Model do nieco innej pracy.
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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 9.10.2025 - 18:01