Twig (Template-Engine)

Twig
Basisdaten
Hauptentwickler Armin Ronacher, Fabien Potencier
Entwickler SensioLabs
Erscheinungsjahr 2009
Aktuelle Version 3.22.1
(16. November 2025)
Betriebssystem Plattformunabhängig
Programmier­sprache PHP
Kategorie Template-Engine
Lizenz BSD-Lizenz
twig.symfony.com

Twig ist eine Template-Engine für die Programmiersprache PHP. Die Syntax wurde von der Template-Engine Jinja sowie der des Django-Frameworks beeinflusst. Twig ist eine freie Software, unter der BSD-Lizenz, und wird von Fabien Potencier betreut. Die erste Version wurde von Armin Ronacher entwickelt. Das PHP-Framework Symfony benutzt Twig als Standard für die Template-Engine.

Funktionen

Twig wird von den folgenden Integrierten Entwicklungsumgebungen unterstützt:

Des Weiteren wird die Templating-Engine von folgenden Editoren unterstützt:

Syntax

Twig arbeitet mit drei Arten von Bezeichnern:

Der Apostroph (') ist die Escape-Sequenz.

So kann ein iteratives Array auf folgendem Wege erzeugt werden:

{% set meinArray = [1, 2] %}

Ähnlich gilt dies für Assoziative Datenfelder:

{% set meinArray = {'key': 'value'} %}

Operatoren und Vorrang

Die Operatoren und ihr Vorrang sind in folgender Tabelle in aufsteigender Priorität aufgelistet:

OperatorFunktion
orDisjunktion
xorKontravalenz
andKonjunktion
b-orDisjunktion (logisch)
b-xorKontravalenz (logisch)
b-andKonjunktion (logisch)
==Gleichheit
!=Ungleichheit
<kleiner als
>größer als
>=größer gleich
<=kleiner gleich
ininnerhalb
matcheskorrespondiert
starts withbeginnt mit
ends withendet mit
..Sequenz (z. B.: 1..5)
+Plus
-Minus
~Verkettung
*Multiplikation
/Division
//Division (abgerundet)
%Modulo
isTest (ex: ist definiert oder ist nicht leer)
**Potenz
|Filter
[]Datenfeld
.Attribut oder Methode eines Objects (z. B.: land.name)

Filter

Filter ermöglichen die Weiterverarbeitung eines Ausdrucks vor der Ausgabe und werden durch eine Pipe nach dem Ausdruck eingeleitet. Mögliche Filter sind beispielsweise:

  • capitalize: ändert das erste Zeichen einer Zeichenfolge in einen Großbuchstaben.
  • upper: ändert alle Zeichen einer Zeichenfolge in Großbuchstaben.
  • first: zeigt die erste Zeile eines Datenfeldes an.
  • length: gibt die Größe des Variablenwertes zurück.

Spezielle Variablen

  • loop beinhaltet Informationen zur aktuellen Iteration innerhalb einer Schleife. So gibt loop.index die Anzahl der bereits ausgeführten Iterationen zurück.
  • Globale Variablen beginnen mit Unterstrichen. Zum Beispiel:
    • _route (URL-Teil hinter der Domain)
    • _self (eigener Dateiname)
    So wird auf folgendem Weg der Pfad zur Seite angezeigt werden: {{ path(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')) }}
  • Die CGI-Umgebungsvariablen, z. B. {{ app.request.server.get('SERVER_NAME') }}.

Beispiel

Das folgende Beispiel zeigt den grundlegenden Einsatz von Twig.

{% extends "base.html" %}
{% block navigation %}
    <ul id="navigation">
    {% for item in navigation %}
        <li>
            <a href="{{ item.href }}">
                {% if item.level == 2 %}&nbsp;&nbsp;{% endif %}
                {{ item.caption|upper }}
            </a>
        </li>
    {% endfor %}
    </ul>
{% endblock navigation %}

Siehe auch

Portal: Freie Software – Übersicht zu Wikipedia-Inhalten zum Thema Freie Software

Einzelnachweise

  1. ↑ Original Repository
  2. ↑ Release 3.22.1. 16. November 2025 (abgerufen am 18. November 2025).
  3. 1 2 Twig documentation for template designers
  4. ↑ Twig repository on GitHub
  5. ↑ Symfony2 Documentation (Memento vom 5. August 2010 im Internet Archive), abgerufen am 18. Februar 2026.
  6. 1 2 3 twig.symfony.com
  7. ↑ Extending Twig
  8. ↑ twig.symfony.com
  9. ↑ twig.symfony.com
  10. ↑ twig.symfony.com