Twig ist die führende Template-Engine für PHP. Sie wurde 2009 von Fabien Potencier als moderne Alternative zu Smarty entwickelt, ist ein fester Bestandteil des Symfony-Frameworks und ihre Syntax ist stark von Jinja und den Django-Templates beeinflusst. Twig kompiliert Templates in optimierten PHP-Code und ist damit schnell und sicher.
Syntax im Überblick
{{ variable }} <!-- Ausgabe -->
{% if x %} ... {% endif %} <!-- Logik -->
{% for i in items %} ... {% endfor %} <!-- Schleife -->
{% extends 'base.html.twig' %} <!-- Vererbung -->
{% block inhalt %} ... {% endblock %}
Erste Schritte
composer require twig/twig
php -r "require 'vendor/autoload.php'; echo (new TwigEnvironment(new TwigLoaderArrayLoader(['h' => 'Hallo {{ name }}'])))->render('h', ['name' => 'Hanse']);"
Praxis-Tipps
- Vererbung:
{% extends %}mit{% block %}baut Basis-Layouts;{% include %}bindet Fragmente ein. - Autoescaping: Twig escaped Ausgaben standardmäßig je nach Kontext (HTML, JS, CSS) — Schreibschutz gegen XSS ist eingebaut.
- Filter:
|upper,|date,|lengthund viele weitere Filter transformieren Werte direkt im Template. - Symfony: Twig ist die Standard-Template-Engine von Symfony und wird dort über das
twig-bridge-Paket nahtlos integriert.
Verwandte Grundlagen: PHP-Befehle sowie die Schwester-Engines EJS-Befehle und Jinja-Befehle.