composer require twig/twig
----
===== Templates in andere Templates einbinden =====
Es empfiehlt sich, als erstes einen Basis-Template anzulegen, welches in den anderen Seiten eingebunden wird:
{% extends 'base.twig' %}
Anders herum ist es natürlich auch möglich, Templates in andere Templates zu inkludieren:
{% include 'footer.twig' %}
----
===== Syntax =====
**Variable definieren** und Wert zuweisen:
{% set variable = 'wert' %}
* [[twig:vars|variable Variablennamen verwenden]]
Der **Inhalt einer Variable** wird in doppelt geschweiften Klammern ausgegeben:
{{ variable }}
**Tags** werden in TWIG immer in einfachen geschweiften Klammern, gefolgt von einem Prozentzeichen, geschrieben:
{% tag [ | filter ] %}
{# HTML #}
{% endtag %}
**Bedingungen** werden immer in einfachen geschweiften Klammern, gefolgt von einem Prozentzeichen, aufgerufen:
{% if var == a %}...{% endif %}
* [[twig:operators|Liste aller Operatoren]]
**Funktionen** werden immer in einfachen geschweiften Klammern, gefolgt von einem Prozentzeichen, aufgerufen:
{% funktion( parameter ) %}
* [[twig:functions|Die wichtigsten Funktionen]]
----
===== Twig-Beispiel =====
Das Twig-Beispiel zeigt die sinnvolle Aufteilung von den folgenden Komponenten einer Webseite auf:
* Konfiguration
* Page-Controller
* Mastertemplate
* Twig-View
[[twig:example|Hier geht's zum Beispiel]]
---
===== Kurzreferenz =====
^ Kurzbeschreibung ^ Beispiel ^
| Abfragen, ob eine Variable leer ist | {% if Statusmeldung %}...{% endif %}
|
| Bedingungen | {% if ergebnis == true %}..{% else %}..[% endif %}
|
| Inhalt einer Variable ausgeben | {{ Statusmeldung }}
|
| Durch ein Objekt oder Array iterieren | {% for entry in data %}...{% endfor %}
|
| Inhalt eines Array-Elements oder einer Objekt-Variable in einer Schleife ausgeben | {{ entry.email }}
|
| For-Next-Schleife erstellen | {% for i in 0..10 %}{{ i }}
{% endfor %}
|
| For-Next-Schleife mit variabler Anzahl von Durchläufen | {% for f in range( 1, config.faecher ) %} {{ f }} {% endfor %}
|
| Methode einer Klasse aufrufen | {{ user.checkEmail( email ) }}
|