Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zagadnienie co do wzorca MVC, Pobieranie danych do widoku.
Przem4S
post
Post #1





Grupa: Zarejestrowani
Postów: 103
Pomógł: 3
Dołączył: 26.07.2010
Skąd: Tychy

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


Mianowicie czy dopuszczalne jest coś takiego że załóżmy mam kontroler setup:
  1. class Setup extends Controller
  2. {
  3. public function __construct()
  4. {
  5. parent::__construct();
  6. }
  7.  
  8. public function index()
  9. {
  10. // Zainicjowanie zmiennej która zostanie wprowadzona do widoku:
  11. $var = null;
  12. // Załadowanie modelu:
  13. $this -> load -> model('setup');
  14. $model = new Model_Setup; // Przypisanie widoku w kontrolerze
  15. $var['title'] = $model -> get_title();
  16. // Załadowanie widoku i przekazanie do niej zmiennych:
  17. $this -> load -> view('setup', $var);
  18. }
  19. }


Czyli w moim wypadku działa to tak iż Kontroler inicjuje model i widok następnie przepisuje do zmiennej w tablicy funkcję pobierającą dane z modelu i tą że zmienną umieszczam w widoku. Czyli jak by nie patrzeć widok pobiera zmienną z kontrolera a nie bezpośrednio z modelu? Czy ja się już pogubiłem? Praktycznie wszędzie pisze jako że widok ma pobierać dane z modelu, jak to ustosunkować w moim wypadku? Z góry dzięki za odpowiedzi (IMG:style_emoticons/default/smile.gif) Pozdrawiam.

Ten post edytował Przem4S 7.03.2012, 21:24:04
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
marcio
post
Post #2





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Cytat
P.S. Nawiasem mówiąc jeśli robisz ten framework sam - polecam dodawanie do akcji kontrolerów jakiegoś postfixa - na przykład Action tak jak w zendzie - to daje tyle, że wewnątrz wtedy masz rozróżnienie czy dana metoda jest akcją czy zwykłą metodą obiektu kontrolera (której nie można wywołać jako akcji z przeglądarki)

Zacznijmy od tego ze jesli taka metoda nie jest akcja kontrolera to bedzie to raczej metoda z zasiegiem protected/private skoro nie ma do niej odwolania przez url to po co ona ma byc w ogole publiczna?!?

Cytat
Ok skąd to się tu wzięło to nie wiem... To nie jest żadne MVP - to jest zwykłe MVC - z kodu wynika że wszelkie obowiązki są zachowane , C nic sam nie wyświetla, przekazuje dane do widoku który to powinien je wyświetlić. Gdzie tu Prezenter?


Cytat z wiki:
Cytat
Widok jest odpowiedzialny za prezentację danych w obrębie graficznego interfejsu użytkownika. Może składać się z podwidoków zarządzających mniejszymi elementami składowymi. Widoki posiadają bezpośrednie referencje do modeli, z których pobierają dane, gdy otrzymują od kontrolera żądanie odświeżenia. Widoki mogą także modyfikować stan modelu, jeśli dana modyfikacja dotyczy sposobu prezentacji danych


Poprostu prezenterem jest wlasnie kontroler, widokiem szablon(zalezy od implementacji) a model to model
MVP wiki:
Cytat
The presenter acts upon the model and the view. It retrieves data from repositories (the model), and formats it for display in the view.

http://nirajrules.wordpress.com/2009/07/18...vs-mvp-vs-mvvm/

Cytat
Grunt aby widok zajmował się tylko wyświetlaniem wartości, model ich przygotowaniem/pobraniem/zapisem a kontroler tym wszystkim rządził ;P

No i wlasnie tu sie chyba mylisz, poczytaj bloz Zyx'a tez wlasnie w MVC kontroler nie pelni roli posrendika

EDIT:
https://github.com/zyxist/Trinity/blob/mast...s/View/Grid.php tak wyglada widok w MVC

Ten post edytował marcio 8.03.2012, 10:23:51
Go to the top of the page
+Quote Post

Posty w temacie
- Przem4S   Zagadnienie co do wzorca MVC   7.03.2012, 21:23:12
- - marcio   Poprostu masz MVP   7.03.2012, 22:59:28
- - Przem4S   Mógłby się ktoś jeszcze wypowiedzieć? Ewentualnie ...   8.03.2012, 09:01:59
- - Sephirus   Mimo że twoja metoda jest troszeczkę oryginalna to...   8.03.2012, 09:37:19
- - Przem4S   Po prostu myślałem że w kontrolerze mam przypisać ...   8.03.2012, 09:40:28
- - Sephirus   Ten sposób pokazany przez Ciebie z przekazaniem mo...   8.03.2012, 09:57:26
- - marcio   CytatP.S. Nawiasem mówiąc jeśli robisz ten framewo...   8.03.2012, 10:18:16
- - Sephirus   Cytat... and formats it for display in the view. ...   8.03.2012, 10:20:06
- - marcio   Bo to nie jest kontroler lecz prezenter   8.03.2012, 10:26:47
- - Sephirus   Nie o to mi chodziło. Opisz mi co to jest format...   8.03.2012, 10:28:46
- - marcio   Tutaj masz to dobrze opisane. Chodzi glownie o ro...   8.03.2012, 10:34:19
- - Sephirus   No właśnie taką jedną znalazłem: CytatOne other b...   8.03.2012, 10:37:15
- - by_ikar   CytatNo i wlasnie tu sie chyba mylisz, poczytaj bl...   8.03.2012, 10:41:02
- - marcio   Rozumiec rozumiem ale przeczytaj calosc i spojrz n...   8.03.2012, 10:41:06
- - Przem4S   Czyli jak to rozumiec? Np w kohanie kontroler tez ...   8.03.2012, 12:29:04
- - marcio   Cytat(Przem4S @ 8.03.2012, 12:29:04 )...   8.03.2012, 12:56:09
- - Sephirus   To nie tak że wszystkie te frameworki tego nie imp...   8.03.2012, 13:06:11
- - Przem4S   Czyli rozumiem do poprawki relacja widoku z modele...   8.03.2012, 13:19:55
- - marcio   Cytat(Sephirus @ 8.03.2012, 13:06:11 ...   8.03.2012, 13:29:13


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: 8.10.2025 - 17:59