Twig Macros

Twig Macros sind wiederverwendbare Funktionen in Twig-Templates, die Code vereinfachen und die Wartbarkeit verbessern.

Eine Einsteiger-Anleitung zu Twig Macros

Was sind Twig Macros?

Twig Macros sind wiederverwendbare Funktionen innerhalb von Twig-Templates. Sie helfen dabei, Code zu vereinfachen, indem sie Wiederholungen reduzieren und die Wartbarkeit verbessern – ähnlich wie Funktionen in Programmiersprachen.

Ein Macro definieren

Ein Twig Macro wird mit dem Tag {% macro %} definiert. Es kann, genau wie eine Funktion, Parameter entgegennehmen.

1
2
3
{% macro button(text, url, class) %}
    <a href="{{ url }}" class="btn {{ class }}">{{ text }}</a>
{% endmacro %}

Dieses Macro erzeugt eine Button-Komponente, die mehrfach mit unterschiedlichen Werten wiederverwendet werden kann.

Macros im selben Template verwenden

Auch innerhalb der Datei, in der das Macro definiert ist, muss es zuerst importiert werden. {% import _self as macros %} macht die eigenen Macros unter dem Namespace macros verfügbar:

1
2
3
{% import _self as macros %}

{{ macros.button('Click me', 'https://example.com', 'btn-primary') }}

Der frühere Aufruf über {{ _self.button(...) }} ist seit Twig 2.11 veraltet und funktioniert in Twig 3 (und damit in aktuellen Symfony-/Shopware-Versionen) nicht mehr.

Macros in einer separaten Datei speichern

Für eine bessere Organisation können Macros in einer separaten Datei (z. B. macros.twig) gespeichert und bei Bedarf importiert werden.

1
2
3
{% import 'macros.twig' as macros %}

{{ macros.button('Learn More', 'https://example.com', 'btn-secondary') }}

Vorteile von Twig Macros

  • Code-Wiederverwendung: Vermeidet das Duplizieren gleicher Strukturen.
  • Bessere Lesbarkeit: Hält Templates sauberer und strukturierter.
  • Einfache Wartung: Macros einmal aktualisieren und die Änderungen überall übernehmen.
Erstellt mit Hugo
Theme Stack gestaltet von Jimmy