Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]MVC - co przekazywać widokowi, a czego nie?
SmokAnalog
post
Post #1





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


Witajcie,

dzisiaj mam taką małą zagwostkę na temat wzorca Model View Controller. Czy powinno się przekazywać widokom instancje generowane przez modele? Innymi słowy, czy nazwa klasy ma w ogóle prawo znaleźć się w widoku?

Przykład: mamy metodę, która pobiera obiekt zalogowanego użytkownika, a w widoku wypisujemy jego login. I teraz mamy dwie możliwości:
  1. Użyć klasy w modelu, np.:

    W widoku:
    1. Witaj, <?php echo User::getLoggedIn()->login ?>!
  2. Przekazać obiekt użytkownika widokowi, np.:

    W kontrolerze:
    1. $view->user = User::getLoggedIn()


    W widoku:
    1. Witaj, <?php echo $this->user->login ?>!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
markonix
post
Post #2





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Osobiście obiekt zalogowanego użytkownika tworze gdzieś wyżej (w core kontrolerze) i w zależności od klasy widoku tam już go przekazuje do widoku albo dołączam do tablicy zmiennych, które pójdą do widoku. Po prostu obiekt zalogowanego użytkownika przydaje się w wielu miejscach i kontekstach (zarówno w kontrolerze, zwykle id zalogowanego leci do metod modeli), a w widoku wiadomo jego podstawowe dane, id czy typ konta jeżeli jest takowe.

Powyższe podchodzi bardziej pod punkt 2.

  1. <?php
  2. // kontroler główny, np. w CI w core Controller
  3. $this['data']['logged'] = User::getLoggedUser();
  4.  
  5. // widok
  6. <?= $logged->username ?>


Ten post edytował markonix 19.10.2013, 21:03:22
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: 12.10.2025 - 15:18