Twig: kleine Syntax-Anpassung mit deutlichem Einspareffekt

in  Basics , ,

Twig: kleine Syntax-Anpassung mit deutlichem Einspareffekt

Der folgende Tipp hilft dabei, den Code-Umfang häufiger Abfragen in Twig-Templates zu reduzieren. Dies verbessert die Lesbarkeit enorm und hilft dabei, die Logik in den Templates intuitiver zu formulieren. Diese Abkürzung kommt komplett ohne zusätzliche Funktionen und Filter aus.

Oft möchte man prüfen, ob eine Variable im Template existiert und einen gültigen Wert enthält. In dem Fall soll etwas mit der Variable getan werden, typischerweise erfolgt eine Ausgabe des Wertes. Ganz explizit formuliert sieht so eine Abfrage in etwa wie folgt aus:

1
2
3
{% if myTitle is defined and myTitle is not null %}
    <h2>{{ myTitle }}</h2>
{% endif %}

Nun kann man an Stelle einer Prüfung auf die Existenz der Variable natürlich auch einen (leeren) Standardwert festlegen und somit dafür sorgen, dass die Variable auf jeden Fall definiert ist:

1
2
3
{% if myTitle|default is not empty %}
    <h2>{{ myTitle }}</h2>
{% endif %}

Noch prägnanter geht es, wenn man is not empty implizit auswertet, also einfach weg lässt:

1
2
3
{% if myTitle|default %}
    <h2>{{ myTitle }}</h2>
{% endif %}

Das ist übrigens nicht meine Erfindung, sondern schon lange bekannt. Beispielsweise wurde der Trick in diesem Blog-Beitrag bereits vor über 6 Jahren erwähnt.

Weitere Beiträge in Kategorie Basics

CSS-Konzepte spielerisch lernen
- Die Cascading Style Sheets zum Gestalten von Internetseiten und Webanwendungen gibt es schon eine ganze Ewigkeit. Elementare Dinge ändern sich hier vergleichsweise selten. Mit der Umstellung von …
Funktionale Programmierung in Twig: Collections deklarativ verarbeiten
- Seit kurzem haben neue Funktionen in die Template-Engine Twig Einzug gehalten. Diese verändern die Art und Weise, wie mit mehrwertigen Daten umgegangen wird, fundamental. Aus diesem Grund soll dieser …
Prägnante und strukturierte Stylesheets mit SCSS
- Auch wenn es für einige Leser ein alter Hut ist, so gibt es dennoch sicherlich andere, die noch keine Erfahrungen mit Less oder Sass haben. Daher sei einmal das sehr leicht zu erlernende SCSS (Sassy …
Kategorien in Zikula - weit mehr als nur Themen
- Der Zikula Core enthält eine zentrale Verwaltung für Kategorien, mit denen man vielfältige Lösungen umsetzen kann. Die häufigste Verwendung von Kategorien ist sicherlich eine thematische Zuordnung von …
Probleme mit Error Tracking proaktiv erkennen
- Sobald ein Programm oder eine Internetseite erst einmal produktiv verwendet wird, stellt sich heraus, ob alle Eventualitäten bedacht sind oder ob doch etwas nicht berücksichtigt worden ist. Spätestens …