![]() |
![]() |
![]()
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 |
|
|
![]() |
![]()
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. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 18:01 |