Beispiel #1
0
 public function render($template = 'index', $data = array())
 {
     $iTemplate = new Templating();
     $iTemplate->setTemplate($template);
     $iTemplate->set('data', $data);
     $iTemplate->render($this);
 }
 public function testReplaceTemplate()
 {
     $root = vfsStream::setup('root');
     $basedir = vfsStream::url('root/');
     file_put_contents("{$basedir}test2.template", 'Test {{template}}');
     file_put_contents("{$basedir}test2.php", '<?php return function() { echo "fail"; };');
     $root->getChild('test2.php')->lastModified(time() - 5);
     $templating = new Templating($basedir);
     $output = $templating->renderTemplate('test2', array('template' => 'foo'));
     $this->assertEquals('Test foo', $output);
 }
Beispiel #3
0
            if ($dbmanager->persist('User', [$userData])) {
                $_SESSION['message'] = ['type' => 'success', 'text' => 'Das Mitglied wurde im System gespeichert'];
                //Redirect overview -> Übersicht mit Erfolsmeldung
                header('location: ' . LINK_OVERVIEW);
            } else {
                $_SESSION['message'] = ['type' => 'danger', 'text' => 'Die Daten konnten nicht gespeichert werde'];
            }
        } else {
            $_SESSION['message'] = ['type' => 'danger', 'text' => 'Es konnte keine Verbindung zur Datenbank hergestellt werden'];
        }
    } else {
        $_SESSION['message'] = ['text' => $userData['error'], 'type' => 'danger'];
    }
}
//Klassen zum rendern von HTML-Templates (Layout Menü)
$tmpl = new Templating();
$wrappers = $tmpl->renderWrapper('layoutMenu.html');
//Wenn Rendern erfolgreich Header und Footer um Content ausgeben
if ($wrappers) {
    echo $wrappers[0];
    ?>

    <form action="" method="post" id="formCreateUser">
        <div class="form-group col-md-12">
            <label for="inpFirstname">Vorname*</label>
            <input type="text" class="form-control" id="inpFirstname" name="firstname"
                   <?php 
    if (isset($_POST['firstname'])) {
        echo 'value="' . $_POST['firstname'] . '" ';
    }
    ?>
Beispiel #4
0
    /**
     * @param string $template
     * @param array  $params
     */
    public function render($template, $params = array())
    {
        $this->renderer->render($template, $params);
    }
}
?>

Premier exemple à partir d'une chaîne de caractères:

<?php 
$stringTemplating = new Templating(new StringTemplateRenderer());
$stringTemplating->render('Hello %name%.', array('name' => 'Robert'));
?>


Second exemple à partir d'un fichier:

<?php 
$fileTemplating = new Templating(new FileTemplateRenderer());
$fileTemplating->render(__DIR__ . '/example.tpl.php', array('name' => 'Robert'));
?>


Le principe ici était de sortir de notre objet Templating le mécanisme de rendu.
C'est un exemple de pattern "composite" ou "composition".
Cela permet de rendre le code plus souple sans modifier le fonctionnement de la classe principale: ici Templating.