Latte ist ein voll ausgestatteter Template-Engine, der sehr einfach zu bedienen ist und sich näher an einer PHP-Syntax anfühlt als Twig oder Smarty. Es ist auch sehr einfach zu erweitern und eigene Filter und Funktionen hinzuzufügen.
Installieren Sie mit Composer.
composer require latte/latte
Es gibt einige grundlegende Konfigurationsoptionen, um loszulegen. Weitere Informationen dazu finden Sie in der Latte-Dokumentation.
use Latte\Engine as LatteEngine; require 'vendor/autoload.php'; $app = Flight::app(); $app->register('latte', LatteEngine::class, [], function(LatteEngine $latte) use ($app) { // Hier speichert Latte Ihre Templates, um die Geschwindigkeit zu erhöhen // Eine interessante Sache an Latte ist, dass es automatisch Ihren Cache aktualisiert, // wenn Sie Änderungen an Ihren Templates vornehmen! $latte->setTempDirectory(__DIR__ . '/../cache/'); // Geben Sie Latte an, wo sich das Stammverzeichnis für Ihre Ansichten befinden wird. // $app->get('flight.views.path') ist in der config.php-Datei festgelegt // Sie könnten auch einfach etwas wie `__DIR__ . '/../views/'` tun $latte->setLoader(new \Latte\Loaders\FileLoader($app->get('flight.views.path'))); });
Hier ist ein einfaches Beispiel für eine Layoutdatei. Diese Datei wird verwendet, um alle Ihre anderen Ansichten zu umschließen.
<!-- app/views/layout.latte --> <!doctype html> <html lang="de"> <head> <title>{$title ? $title . ' - '}Meine App</title> <link rel="stylesheet" href="style.css"> </head> <body> <header> <nav> <!-- Ihre Navigations-Elemente hier --> </nav> </header> <div id="content"> <!-- Hier liegt die Magie --> {block content}{/block} </div> <div id="footer"> © Urheberrecht </div> </body> </html>
Und jetzt haben wir Ihre Datei, die in diesem Inhaltsblock gerendert werden soll:
<!-- app/views/home.latte --> <!-- Dies sagt Latte, dass diese Datei "innerhalb" der layout.latte-Datei ist --> {extends layout.latte} <!-- Dies ist der Inhalt, der innerhalb des Layouts im Inhaltsblock gerendert wird --> {block content} <h1>Startseite</h1> <p>Willkommen bei meiner App!</p> {/block}
Dann, wenn Sie dies in Ihrer Funktion oder Ihrem Controller rendern möchten, würden Sie etwas Ähnliches tun:
// einfache Route Flight::route('/', function () { Flight::latte()->render('home.latte', [ 'title' => 'Startseite' ]); }); // oder wenn Sie einen Controller verwenden Flight::route('/', [HomeController::class, 'index']); // HomeController.php class HomeController { public function index() { Flight::latte()->render('home.latte', [ 'title' => 'Startseite' ]); } }
Schauen Sie in der Latte-Dokumentation nach weiteren Informationen darüber, wie Sie Latte optimal nutzen können!