Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> MVC - widok
Apo
post
Post #1





Grupa: Zarejestrowani
Postów: 426
Pomógł: 1
Dołączył: 2.10.2005

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


Witam

Zastanawiałem się ostatnio nad implemenacją widoku w moim frameworku. Dotychczas nie tworzyłem osobnych klas dla widoku tylko robiłem tak jak jest w ZF:

  1. <?php
  2.  
  3. class Controller_View extends Controller {
  4.  
  5. public function showComentsAction()
  6. {
  7. $view = new View(); // poprostu prosty parser szablonów
  8. $view->imie = "Marek"; // assign
  9. $view->render('szablon'); // wygenerowanie widoku i przekazanie do zmiennej w HttpResponse
  10. }
  11.  
  12. }
  13. ?>


Ale zauważyłem że dużo osób tworzy osobne klasy dla widoku np:

  1. <?php
  2.  
  3. class News_View extends View {}
  4.  
  5. ?>


Czy moglibyście wyjaśnić jakieś plusy trzymania widoków w osobnych klasach :?: (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
eai
post
Post #2





Grupa: Zarejestrowani
Postów: 367
Pomógł: 10
Dołączył: 20.05.2005

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


Teoretycznie w MVC modele przekazuja nam dane, wiec je jakos musimy przekazac np za pomoca tablicy. Drugi Model moze zawierac w tablicy dane z kolejnego modelu. Te tablice odpowiednia lacza sie w galeziach. Po przejsciu przez wszystkie akcje uzytkownika powstaje dosc spora tablica. A widok ma za zadanie przetworzenie tej calej tablicy.

Dlatego u mnie taka struktua:

  1. <?php
  2. //Tablica wygenerowana z modelu NEWSY
  3. $Newsy = array(
  4.  'file' => 'newsy.tpl';
  5.  'setvar' => array(
  6. array('{tytul}' => 'tytul newsa'),
  7. array('{data}'=>'data newsa'),
  8. array('{tresc}'=>'tytul newsa')
  9. );
  10. );
  11. //Tablica wygenerowana z modelu ARTYKULY
  12. $Artykuly = array(
  13.  'file' => 'artykuly.tpl';
  14.  'setvar' => array(
  15. array('{temat}'=> 'temat artykulu'),
  16. array('{dodal}'=> 'administrator'),
  17. array('{tresc}'=> 'zawartosc newsa')
  18. );
  19. );
  20. $Index = array(
  21.  'file' => 'index.tpl';
  22.  'setvar' => array(
  23. array('{newsy}'=> $Newsy),
  24. array('{artykuly}' => $Artykuly),
  25. array('{title}' => 'Strona Glowna serwisu')
  26. );
  27. );
  28. ?>


No i tak dalej.... w dispatcherze lacze te tablice lub bezposrednio w modelu jesli model korzysta z innego modelu....
Tak to u mnie w praktyce wyglada "Oddzielenie Modelu od Widoku"

Ten post edytował eai 20.10.2006, 16:07:11
Go to the top of the page
+Quote Post

Posty w temacie


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: 26.12.2025 - 19:34