Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Przekazywanie z kontrolera do widoku
croc
post
Post #1





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

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


Witajcie,

jak rozwiązujecie kwestię przekazywania zmiennych z kontrolera do widoku? Chodzi mi o to, by odwoływać się w widoku normalnie do zmiennych, jak na przykładzie:
  1. <div><?php echo $vegetable; ?></div>

A w kontrolerze przekazywać tę zmienną np. tak:
  1. $view->vegetable = 'Marchew';

Chciałbym, by zmienne przekazywane do widoku w żaden sposób nie kolidowały z tymi w kontrolerze.

Czy rozwiązuje się to zamieniając po prostu zmienne z widoku $view->zmienna na $zmienna na końcu skryptu i potem wczytując widok np. przez require_once czy jest jakiś bardziej wyszukany sposób?

Ten post edytował croc 24.10.2011, 22:24:12
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
Spawnm
post
Post #2





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




http://pl2.php.net/extract
Go to the top of the page
+Quote Post
croc
post
Post #3





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

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


Dzięki, ale nie to jest istotą problemu w tym temacie (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
CuteOne
post
Post #4





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


Ja bym to zrobił tak jak w zendzie
  1. <?php
  2. class View {
  3.  
  4. public function __set($key, $value) {
  5.  
  6. $this->_vars[$key] = $value;
  7. }
  8.  
  9.  
  10. public function __get($key) { // można dodać sprawdzanie czy odwołujemy się do zmiennych prywatnych
  11.  
  12. if(isset($this->_vars[$key])) {
  13.  
  14. return $this->_vars[$key];
  15. }
  16. }
  17.  
  18. public function render($tpl) {
  19.  
  20. include $tpl;
  21. $h = ob_end_flush();
  22.  
  23. echo $h;
  24. }
  25. }
  26.  
  27.  
  28. class Controller {
  29.  
  30. public $inna = 'bbb';
  31.  
  32. public function __construct() {
  33.  
  34. $view = new View();
  35.  
  36. $view -> zmienna = 'aaaa';
  37. $view -> render();
  38. }
  39. }
  40.  
  41. // plik $tpl z funkcji render
  42.  
  43. <table>
  44. <tr>
  45. <td><?php echo $this->zmienna; ?></td>
  46. <td><?php echo $this->inna; ?></td> // :)
  47. </tr>
  48. </table>
  49. ?>


Ten post edytował CuteOne 24.10.2011, 23:18:40
Go to the top of the page
+Quote Post
croc
post
Post #5





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

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


To brzmi całkiem sensownie, dzięki! Wszelkie inne sugestie mile widziane, tak dla porównania. (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Crozin
post
Post #6





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Zamiast takich potworków, lepiej użyj najzwyklejszej tablicy do przekazania danych i przekaż ją jako drugi argument metody View::render().
Go to the top of the page
+Quote Post

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: 21.12.2025 - 19:02