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.
Twig | |
---|---|
Basisdaten
| |
Maintainer | Armin Ronacher, Fabien Potencier |
Entwickler | SensioLabs |
Erscheinungsjahr | 2009 |
Aktuelle Version | 3.7.1 (28. August 2023) |
Betriebssystem | Plattformunabhängig |
Programmiersprache | PHP |
Kategorie | Template-Engine |
Lizenz | BSD-Lizenz |
twig.symfony.com |
Funktionen Bearbeiten
- Unterstützung von Kontrollfluss
- automatische Maskierung
- Vererbung von Vorlagen
- variable Filter
- Unterstützung für Internationalisierung mittels gettext
- Makros
- Erweiterbarkeit
Twig wird von den folgenden Integrierte Entwicklungsumgebungen unterstützt:
- Eclipse
- Komodo
- NetBeans
- PhpStorm (nativ)
- Visual Studio
Des Weiteren wird die Templating-Engine von folgenden Editoren unterstützt:
- Atom
- emacs
- Notepad++
- Sublime Text
- TextMate
- vim
Syntax Bearbeiten
Twig arbeitet mit drei Arten von Bezeichnern:
{{ ... }}
, um den Inhalt einer Variable oder das Ergebnis eines Ausdrucks (z. B. um eine vererbte Twig-Vorlage mit{{ parent() }}
) auszugeben.{# ... #}
, für Kommentare, die nicht weiter verarbeitet werden{% ... %}
, für Kommandos und Kontrollstrukturen durch z. B. Schleifen oder Verzweigungen{% set foo = 'bar' %}
, für die Wertezuweisung.{% if i is defined and i == 1%} ... {% endif %}
: Bedingte Anweisung und Verzweigung.{% for i in 0..10 %} ... {% endfor %}
: Schleifen
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 Bearbeiten
Die Operatoren und ihr Vorrang ist in folgender Tabelle in aufsteigender Priorität aufgelistet:
Operator | Funktion |
---|---|
b-and | Konjunktion (logisch) |
b-xor | Kontravalenz (logisch) |
b-or | Disjunktion (logisch) |
or | Disjunktion |
and | Konjunktion |
== | Gleichheit |
!= | Ungleichheit |
< | kleiner als |
> | größer als |
>= | größer gleich |
<= | kleiner gleich |
in | innerhalb |
matches | korrespondiert |
starts with | beginnt mit |
ends with | endet mit |
.. | Sequenz (z. B.: 1..5 ) |
+ | Plus |
- | Minus |
~ | Verkettung |
* | Multiplikation |
/ | Division |
// | Division (abgerundet) |
% | Modulo |
is | Test (ex: ist definiert oder ist nicht leer ) |
** | Potenz |
| | Filter |
[] | Datenfeld |
. | Attribut oder Methode eines Objects (z. B.: land.name ) |
Filter Bearbeiten
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 Bearbeiten
loop
beinhaltet Informationen zur aktuellen Iteration innerhalb einer Schleife. So gibtloop.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)
- Die CGI Umgebungsvariablen, z. B.
{{ app.request.server.get('SERVER_NAME') }}
.
Beispiel Bearbeiten
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 %} {% endif %} {{ item.caption|upper }} </a> </li> {% endfor %} </ul> {% endblock navigation %}
Siehe auch Bearbeiten
Weblinks Bearbeiten
- Offizielle Website
- Fabien Potencier: Templating Engines in PHP. 7. Oktober 2009, abgerufen am 6. April 2011.
- Fabien Potencier: Templating Engines in PHP (Перевод: Шаблонизаторы в PHP). 20. November 2009, abgerufen am 6. April 2011 (russisch).
Einzelnachweise Bearbeiten
- Original Repository
- Release 3.7.1. 28. August 2023 (abgerufen am 19. September 2023).
- ↑ Twig documentation for template designers
- Twig repository on GitHub
- (Memento des vom 5. August 2010 im Internet Archive) Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.
- ↑ twig.symfony.com
- Extending Twig
- twig.symfony.com
- twig.symfony.com
- twig.symfony.com