turk porno porno escort rokettube
Ergebnis 1 bis 8 von 8

Thema: PHPRenderer: String-Variable statt Template rendern?

  1. #1
    Benutzer
    Registriert seit
    14.03.2009
    Beiträge
    73
    Thanks
    2
    Thanked 0 Times in 0 Posts

    Standard PHPRenderer: String-Variable statt Template rendern?

    Hallo,

    besteht in ZF2 die Möglichkeit, einen String statt einer Template-Datei zu rendern? "Wünsche mir" in etwa so etwas:
    PHP-Code:
    $renderer = new PhpRenderer();
    $model = new ViewModel(array('foo' => 'bar'));

    $template = 'Variable foo is <?php echo $foo?>!';
    $renderer->render($template);
    Das ganze sollte möglichst OHNE zwischenspeichern von $template in einer Datei funktionieren. Da ich bislang nix dazu finden konnte, läuft es wohl darauf hinaus, dass ich Zend\View\Renderer\PhpRenderer erweitern muss.Oder?

    Bin dankbar für jeden Tipp...

    Z.
    Um Alles aus Nichts zu erzeugen, reicht Eins.

  2. #2
    Super-Moderator Avatar von Kaiuwe
    Registriert seit
    30.12.2006
    Beiträge
    5.520
    Thanks
    4
    Thanked 356 Times in 287 Posts

    Standard

    Zitat Zitat von Zendy Beitrag anzeigen
    besteht in ZF2 die Möglichkeit, einen String statt einer Template-Datei zu rendern? "Wünsche mir" in etwa so etwas:
    PHP-Code:
    $renderer = new PhpRenderer();
    $model = new ViewModel(array('foo' => 'bar'));

    $template = 'Variable foo is <?php echo $foo?>!';
    $renderer->render($template);
    Das ganze sollte möglichst OHNE zwischenspeichern von $template in einer Datei funktionieren. Da ich bislang nix dazu finden konnte, läuft es wohl darauf hinaus, dass ich Zend\View\Renderer\PhpRenderer erweitern muss.Oder?
    Was hat das mit dem ZF zu tun? Das ist einfacher PHP-Syntax, denn das was du versuchst, ist doch nur folgendes:
    PHP-Code:
    <?php
    $template 
    'Variable foo is <?php echo $foo?>!';
    ?>
    Kann dies so funktionieren?

    Beschreibe mal bitte dein tatsächliches Ziel bzw. vor welchem Problem du stehst, dann können wir dir bestimmt auch einen passenden Ansatz oder gar Lösung bieten. Dein momentan beschriebenes Vorhaben ist doch Murks.
    Zum Zend Framework stehen jedem folgende Quellen zum Nachschlagen zur Verfügung:

  3. #3
    Benutzer
    Registriert seit
    14.03.2009
    Beiträge
    73
    Thanks
    2
    Thanked 0 Times in 0 Posts

    Standard

    Aaalso:
    Um die API-Doc für PhpRenderer für die Methode render() zu zitieren:
    Either the template to use, or a ViewModel. The ViewModel must have the template as an option in order to be valid.
    Ergo: Ich MUUUUSS eine Datei angeben, die gerendert werden soll (in der Regel eine *.phtml-Datei im view-Verzeichnis). Ich würde aber gerne es ähnlich wie in Smarty handhaben (oder ist Smarty etwa Murks?! ), dass man keine Datei rendert sondern eine String-Variable, die z.B. aus einer Datenbank abgefragt wird.

    Danke!
    Um Alles aus Nichts zu erzeugen, reicht Eins.

  4. #4
    Super-Moderator Avatar von Kaiuwe
    Registriert seit
    30.12.2006
    Beiträge
    5.520
    Thanks
    4
    Thanked 356 Times in 287 Posts

    Standard

    Zitat Zitat von Zendy Beitrag anzeigen
    Aaalso:
    Um die API-Doc für PhpRenderer für die Methode render() zu zitieren:
    Klammere dich nicht am ZF oder an einem Template-Sytsem fest, sondern verwende einfach PHP selbst, denn es gibt kein gesondertes „Rendern“ von Inhalten. Das ZF verwendet Standard-PHP, denn PHP selbst ist bereits ein Template-Sprache!

    PHP-Code:
    public function fooAction()
    {
        
    // …aus Datenbank holen
        
    $row;

        
    $bar 'Variable foo is ' $row->foo '!';

    Ja, du darfst und sollst weiterhin PHP schreiben.
    Zum Zend Framework stehen jedem folgende Quellen zum Nachschlagen zur Verfügung:

  5. The Following User Says Thank You to Kaiuwe For This Useful Post:

    Zendy (11.01.2014)

  6. #5
    Benutzer
    Registriert seit
    14.03.2009
    Beiträge
    73
    Thanks
    2
    Thanked 0 Times in 0 Posts

    Standard

    Zitat Zitat von Kaiuwe Beitrag anzeigen
    Ja, du darfst und sollst weiterhin PHP schreiben.
    LOL, der ist gut und tatsächlich angebracht, wenn man viel mit Frameworks arbeitet...

    Mein Problem ist, WIE stehen mir...
    • die Variablen eines Zend\View\Models
    • die View-Helpers
    • etc.


    zur Verfügung?? Ich will doch bloß anstatt einer Template-Datei einen Template-String verwenden... *seufz*
    Um Alles aus Nichts zu erzeugen, reicht Eins.

  7. #6
    Super-Moderator Avatar von Kaiuwe
    Registriert seit
    30.12.2006
    Beiträge
    5.520
    Thanks
    4
    Thanked 356 Times in 287 Posts

    Standard

    Zitat Zitat von Zendy Beitrag anzeigen
    Mein Problem ist, WIE stehen mir...
    die Variablen eines Zend\View\Models
    Das erzeugst du doch in der Kontroller-Aktion selbst und kannst daher auch zugreifen:
    PHP-Code:
    $model = new ViewModel();
    $model->foo 'bar';
    var_dump($model->foo); 
    Zitat Zitat von Zendy Beitrag anzeigen
    die View-Helpers
    PHP-Code:
    $helper $this->getServiceLocator()->get('viewhelpermanager')->get('helperName'); 
    Zitat Zitat von Zendy Beitrag anzeigen
    Ich will doch bloß anstatt einer Template-Datei einen Template-String verwenden...
    Und dann? Wie soll dies dann weiterverarbeitet werden?

    Nachtrag:
    Es gibt noch mehr Möglichkeiten. Zum Beispiel:
    PHP-Code:
    $viewRenderer $this->getServiceLocator()->get('ViewRenderer');
    $content      $viewRenderer->render($template$model);
    // oder
    $model->setTemplate($template);
    $content $viewRenderer->render($model); 
    Vielleicht könntest du aber trotzdem noch sagen, was du nun eigentlich damit bezwecken möchtest.
    Geändert von Kaiuwe (11.01.2014 um 14:39 Uhr)
    Zum Zend Framework stehen jedem folgende Quellen zum Nachschlagen zur Verfügung:

  8. #7
    Benutzer
    Registriert seit
    14.03.2009
    Beiträge
    73
    Thanks
    2
    Thanked 0 Times in 0 Posts

    Standard

    Zitat Zitat von Kaiuwe Beitrag anzeigen
    Vielleicht könntest du aber trotzdem noch sagen, was du nun eigentlich damit bezwecken möchtest.
    Sorry, aber das habe ich bereits mehrmals versucht. Wie oft kommt es vor, dass Inhalte nicht in einem statischen View-Script gespeichert werden (bei ZF die berühmten *.phtml-Dateien) sondern beispielsweise in einer DB. D.h. ich will/muss (siehe auch das Thread Thema....................) dann eben keine SKRIPT-DATEIEN rendern sondern einen String, der auch ZF-spezifischen-Code enthält (z.B. View-Helper).

    ABER
    Ich habe jetzt eine (vorläufige) Lösung gefunden:
    PHP-Code:
    <?php
    //Controller:

    //Wird z.B. aus MySQL gefetcht:
    $content 'Willkommen auf unserer Seite <?php echo $this->url()?>!<br />
    Freuen Sie sich auf unser <?php echo $this->foo?>!'
    ;

    //View-Model:
    $model = new ViewModel(array(    'foo' => 'bar',    'pageContent' => $content));
    $model->setTemplate('foo/bar');


    //View-Skript
    <?php eval($this->pageContent)?>
    Geändert von Zendy (12.01.2014 um 16:53 Uhr)
    Um Alles aus Nichts zu erzeugen, reicht Eins.

  9. #8
    Super-Moderator Avatar von Kaiuwe
    Registriert seit
    30.12.2006
    Beiträge
    5.520
    Thanks
    4
    Thanked 356 Times in 287 Posts

    Standard

    Zitat Zitat von Zendy Beitrag anzeigen
    Sorry, aber das habe ich bereits mehrmals versucht. Wie oft kommt es vor, dass Inhalte nicht in einem statischen View-Script gespeichert werden (bei ZF die berühmten *.phtml-Dateien) sondern beispielsweise in einer DB. D.h. ich will/muss (siehe auch das Thread Thema....................) dann eben keine SKRIPT-DATEIEN rendern sondern einen String, der auch ZF-spezifischen-Code enthält (z.B. View-Helper).
    Ich entschuldige mich, wenn ich etwas überlesen haben sollte. Das du „View“-Helfer verwenden möchtest, habe ich erfragen müssen und das Thema Datenbanken ist ebenfalls neu.

    Um es aber nochmals klarzustellen: beim ZF, und auch bei vielen anderen Frameworks, gibt es das „klassische Rendern“ durch einen gesonderten „Parser“ nicht. Es wird einfaches PHP verwendet, denn dies ist bereits ein Template-Sprache.
    „Rendern“ beim ZF heißt also nur „PHP ausführen“. Daher auch oben mein Hinweis, dass du PHP schreiben darfst und sollst.

    Wenn du jetzt einen „View“-Helfer benötigst, dann kannst du diesen, wie oben gezeigt, auch im Kontroller holen und ausführen.
    Du kannst dir auch den „gerenderten“ Inhalt vom ViewRenderer holen. (siehe ebenfalls oben)

    Zitat Zitat von Zendy Beitrag anzeigen
    ABER
    Ich habe jetzt eine (vorläufige) Lösung gefunden:
    PHP-Code:
    <?php
    <?php eval($this->pageContent)?>
    Stichwort: „Eval is evil!“ - Also weg damit, denn mögliche Lösungen sind bereits genannt.
    Zum Zend Framework stehen jedem folgende Quellen zum Nachschlagen zur Verfügung:

  10. The Following User Says Thank You to Kaiuwe For This Useful Post:

    Zendy (12.01.2014)

Ähnliche Themen

  1. Zend View: Variable statt Script bzw. Datei rendern
    Von tooltonix im Forum Einsteigerfragen
    Antworten: 3
    Letzter Beitrag: 09.02.2012, 20:55
  2. Antworten: 7
    Letzter Beitrag: 06.11.2011, 01:01
  3. Template als String
    Von fr3ak im Forum MVC
    Antworten: 3
    Letzter Beitrag: 30.07.2009, 19:07
  4. Zend Layout + View (Template im Template?)
    Von Crox im Forum Einsteigerfragen
    Antworten: 10
    Letzter Beitrag: 23.04.2008, 18:17
  5. REPLACE statt INSERT
    Von DennisBecker im Forum DB
    Antworten: 2
    Letzter Beitrag: 14.11.2007, 16:16

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •