Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZendFramework]Zend Framework $this-> w widoku.
rnest
post
Post #1





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 26.04.2014

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


Pytanie do bardziej doświadczonych. Jak zaimplementować w widoku widoczność zmiennych z kontrolera. Nie chodzi mi o to jak przekazać wartość zmiennej z kontrolera do widoku, np. w Zendzie, ale jaki mechanizm to wykonuje i jak.
Interesuje mnie sam sposób w jaki jest to uzyskane. Interesuję się nieco szkieletami PHP od strony technicznej i nie bardzo wiem, jak jest ta wspaniała właściwość osiągalna.
Pewne elementy niezbędne do napisania własnego MVC już opanowałem, ale powyższa sztuka, jest dla mnie niewiadomą...
Proszę o wsparcie. Pozdrawiam.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
rnest
post
Post #2





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 26.04.2014

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


Serdeczne dzięki. Spróbuję odtworzyć na małą skalę. Dziękuję i pozdrawiam.

Czyli tak. Jeżeli inkluduję w metodzie klasy plik z widokiem, to jest on niejako wewnątrz metody i siłą rzeczy pola klasy i metody mogą być w tym widoku użyte... Czyli np. tak:
Plik z kontrolerem:
  1. abstract class Lib_Controller {
  2. protected $name = '';
  3.  
  4. public function __construct() {
  5. $this->setName();
  6. }
  7.  
  8.  
  9. public function getName(){
  10. return $this->name;
  11. }
  12.  
  13. private function setName(){
  14. $ref = new ReflectionClass(get_called_class());
  15. $this->name = $ref->getName();
  16. }
  17.  
  18. public function render(){
  19. $GLOBALS['text'] = 'Jestem ' . $this->name;
  20. include_once 'views/index.php';
  21. }
  22.  
  23.  
  24. }


Plik z widokiem:

  1. <!DOCTYPE html>
  2. <!--
  3. To change this license header, choose License Headers in Project Properties.
  4. To change this template file, choose Tools | Templates
  5. and open the template in the editor.
  6. -->
  7. <html>
  8. <head>
  9. <meta charset="UTF-8">
  10. <title></title>
  11. </head>
  12. <body style="background: orange;">
  13. <?php
  14.  
  15. echo $this->getName();
  16.  
  17. ?>
  18. </body>
  19. </html>
  20.  
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: 10.10.2025 - 13:46