Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Twig (Template-Engine) – Wikipedia
Twig (Template-Engine) – Wikipedia 👆 Click Here!
aus Wikipedia, der freien Enzyklopädie
Twig
Basisdaten

Hauptentwickler Armin Ronacher,[1] Fabien Potencier
Entwickler SensioLabs
Erscheinungsjahr 2009
Aktuelle Version 3.21.1[2]
(3. Mai 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.[3] Twig ist eine freie Software,[4] 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.[5]

Funktionen

[Bearbeiten | Quelltext bearbeiten]
  • Unterstützung von Kontrollfluss
  • automatische Maskierung
  • Vererbung von Vorlagen
  • variable Filter[6]
  • Unterstützung für Internationalisierung mittels gettext
  • Makros
  • Erweiterbarkeit[3][7]

Twig wird von den folgenden Integrierte Entwicklungsumgebungen unterstützt:[8]

  • 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 | Quelltext 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.[9]
    • {% 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 | Quelltext bearbeiten]

Die Operatoren und ihr Vorrang[10] 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[6]
[] Datenfeld
. Attribut oder Methode eines Objects (z. B.: land.name)

Filter

[Bearbeiten | Quelltext 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:[6]

  • 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 | Quelltext bearbeiten]
  • 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

[Bearbeiten | Quelltext 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 %}&nbsp;&nbsp;{% endif %}
                {{ item.caption|upper }}
            </a>
        </li>
    {% endfor %}
    </ul>
{% endblock navigation %}

Siehe auch

[Bearbeiten | Quelltext bearbeiten]
Portal: Freie Software – Übersicht zu Wikipedia-Inhalten zum Thema Freie Software
  • Smarty
  • Twital, eine Template-Engine, die ihre Quellen in Twig templates kompiliert und so Zusatzfunktionen wie kontextbasiertes Maskieren, Attributausdrücke sowie eine höhere Lesbarkeit bietet.

Weblinks

[Bearbeiten | Quelltext 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 | Quelltext bearbeiten]
  1. ↑ Original Repository
  2. ↑ Release 3.21.1. 3. Mai 2025 (abgerufen am 1. Juni 2025).
  3. ↑ a b Twig documentation for template designers
  4. ↑ Twig repository on GitHub
  5. ↑ Symfony2 Documentation (Memento des Originals 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.@1@2Vorlage:Webachiv/IABot/docs.symfony-reloaded.org
  6. ↑ a b c twig.symfony.com
  7. ↑ Extending Twig
  8. ↑ twig.symfony.com
  9. ↑ twig.symfony.com
  10. ↑ twig.symfony.com
Abgerufen von „https://de.teknopedia.teknokrat.ac.id/w/index.php?title=Twig_(Template-Engine)&oldid=228928001“
Kategorien:
  • Freies Programmierwerkzeug
  • PHP-Bibliothek
  • Templatesprache
Versteckte Kategorien:
  • Wikipedia:Defekte Weblinks/Ungeprüfte Archivlinks 2019-05
  • Wikipedia:Vorlagenfehler/Vorlage:Cite web/temporär

  • indonesia
  • Polski
  • العربية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصرى
  • Nederlands
  • 日本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українська
  • Tiếng Việt
  • Winaray
  • 中文
  • Русский
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id