Przykład szablonów

Poniższy przykład pokazuje jak w prosty sposób można korzystać z globalnych szablonów dla strony

  1. Po zainstalowaniu modułu należy utworzyć folder templates w głównym folderze projektu.
  2. W folderze templates tworzymy plik base.twig z następującą zawartością:
<html lang="pl">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>Tytuł strony</title>
        {{ debugbarHeader }}
    </head>
    <body>
        {{ content }}
    </body>
</html>

3.. Przechodziny do pliku public/index.php i modyfikujemy go w taki sposób aby korzystał z szablonów:

<?php

require('../vendor/autoload.php');

try {
    \Nimblephp\twig\Twig::$globalPaths[] = '../templates';
    $route = new \Nimblephp\framework\Route(new \Nimblephp\framework\Request());
    $kernel = new \Nimblephp\framework\Kernel($route);

    ob_start();
    $kernel->handle();
    (new \Nimblephp\twig\Template('base'))->render([
        'content' => ob_get_clean(),
        'debugbarHeader' => Debugbar::renderHeader()
    ]);
} catch (Throwable $e) {
    $twig = new \Nimblephp\twig\Twig();
    echo $twig->renderSimpleException($throwable);
}

if ($_ENV['DEBUG'] && !(new \Nimblephp\framework\Request())->isAjax()) {
    echo \Nimblephp\debugbar\Debugbar::render();
}

W powyższym skrypcie:

  1. Definiujemy folder z szablonami
  2. Pobieramy routingu
  3. Renderujemy szablon o nazwie base oraz przesyłamy do niego zmienną content z zawartością strony
  4. W zmiennej debugbarHeader przesyłamy nagłówek debugbara
  5. W przypadku błędu wyświetlamy prosty komunikat błędu wygenerowany z gotowego szablonu na bazie bootstrap5
  6. Wyświetlamy PHPDebugBar