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, |length und 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.