Hubert

Templates

Bevor man mit den Templates beginnt, muss man die TemplateExtension per Composer laden:

{
    "require": {
        "falkm/hubert-template": "1.*"
    }
}

Anschließend legen wir eine config/template.global.php Datei an:

<?php
return array(
    "factories" => array(
        "template" => array(hubert\extension\template\factory::class, 'get')
    ),
    "config" => array(
        "template" => array(
            "path" => dirname(__dir__).'/src/templates',
            "fileExtension" => "phtml",
            "extensions" => array(
                hubert\extension\template\urlExtension::class
            )
        )
    )
);

Im Controller haben wir gesehen, dass die Home-Route die indexAction des IndexControllers aufruft. Diese hat als Rückgabe $this->responseTemplate("index/index", ["name" => "Hubert"]). Es wird also das Template src/templates/index/index.phtml geladen und diesem die Variable $name übergeben.

<?php $this->layout('layout') ?>
Name: <?= $name ?>

Nun geben wir die Variable aus und laden das Layout namens "layout". Dieses liegt ebenfalls im Template-Pfad unter src/templates/layout.phtml:

<html>
    <head>
    </head>
    <body>
        <ul>
            <li><a href="<?= $this->url('home') ?>">Home</a></li>
            <li><a href="<?= $this->url('mvc',['controller' => 'index', 'action' => 'redirect']) ?>">Redirect Home</a></li>
        </ul>

        <?=$this->section('content')?>
    </body>
</html>

Im Layout wird der Inhalt des index-Templates als Section ausgegeben. Weitere Infos zum Umgang mit Plates-Templates findes du unter platesphp.com.

Template Erweiterungen

In der Konfiguration wird eine Url Extension geladen. Diese stellt innerhalb der Templates drei Funktionen zur Verfügung: