
Anleitung zur Umstellung von Smarty auf Twig in OXID eShop 7.2
Mit der Version 7.2 vollzieht OXID eShop einen wichtigen technologischen Wechsel: Die Template-Engine wechselt von Smarty zu Twig. Dieser Schritt bringt zahlreiche Vorteile – von besserer Performance über moderne Entwicklungsstandards bis hin zu einer höheren Wartbarkeit der Codebasis. Wer einen bestehenden Shop betreibt oder eine neue Shopinstallation auf OXID eShop 7.2 plant, sollte sich frühzeitig mit der Migration der Templates befassen.
Dieser Beitrag richtet sich an Entwickler und Agenturen, die Online-Shops auf Basis von OXID eShop betreuen und gibt eine praxisnahe Anleitung für die Umstellung von Smarty auf Twig.
Warum Twig im OXID eShop 7.2?
Twig ist eine performante, flexible und sicherere Template-Engine, die sich im Symfony-Ökosystem etabliert hat. Da OXID eShop seit Version 6 konsequent auf Symfony-Komponenten setzt, ist der Umstieg auf Twig ein logischer Schritt. Entwickler profitieren von besserem Debugging, einer modernen Syntax und Möglichkeiten wie Template-Inheritance und eingebautem Escaping-Mechanismus.
Für Betreiber von B2B- und B2C-Shops bedeutet dies vor allem stabilere Code-Bases, bessere Wartbarkeit und langfristige Investitionssicherheit. Twig ist zukunftssicher und wird von einer großen Entwickler-Community weiterentwickelt. In Verbindung mit dem modularen Aufbau des OXID eShop Frameworks bildet Twig die Grundlage für moderne, skalierbare E-Commerce-Projekte.
Bestandsaufnahme im bestehenden Theme
Bevor mit der Migration begonnen wird, sollte der aktuelle Umfang der Smarty-Templates erfasst werden. Dazu zählen:
- Alle .tpl-Dateien des aktiven Themes (z. B. Flow oder ein Custom Theme)
- Module, die auf eigene Smarty-Templates zugreifen
- CMS-Inhalte, E-Mail-Templates und ggf. Widgets
Am besten lassen sich die betroffenen Dateien über ein Shell-Kommando oder ein geeignetes Code-Analyse-Tool identifizieren. So kann der tatsächliche Migrationsaufwand besser eingeschätzt werden.
Dateistruktur und Pfade in Twig
OXID eShop 7.2 unterstützt Twig standardmäßig im neuen Theme „apex“. Wer ein eigenes Theme basierend auf apex erstellen möchte, sollte die empfohlene Dateistruktur einhalten:
/source/Templates
/apex
/page
/layout
/partials
Das Arbeiten mit Namespaces vereinfacht die Wiederverwendbarkeit von Componenten und Modulen. Als best practice empfiehlt es sich, diese Struktur auch in eigenen Themes oder Modulen zu übernehmen.
Syntaxunterschiede zwischen Smarty und Twig
Die größte Herausforderung bei der Migration ist die Übersetzung der Template-Syntax. Hier ein Überblick typischer Unterschiede:
- Variablen:
{$product->oxarticles__oxtitle->value}
wird zu{{ product.title }}
- Includes:
{include file="widget/header.tpl"}
wird zu{% include "widget/header.twig" %}
- Loops:
{foreach from=$basket->getArticles() item=article}
wird zu{% for article in basket.articles %}
- Conditions:
{if $user->isAdmin()}
wird zu{% if user.isAdmin() %}
Twig bietet zusätzlich moderne Features wie „template inheritance“ über {% extends %}
und {% block %}
. Damit lassen sich zentrale Layoutstrukturen wartungsfreundlich definieren.
Praxis-Tipp: Schrittweise Migration
Ein kompletter Cut-over ist selten praktikabel. Stattdessen empfiehlt sich eine schrittweise Umstellung. OXID erlaubt das Nebeneinander beider Template-Engines über den Parameter theme chains.
So kann ein Teil des Frontends zuerst auf Twig migriert werden, ohne dass der komplette Shop gleichzeitig angepasst werden muss. Kritische Bereiche wie Checkout oder Kundenkonto sollten dabei als letztes umgestellt werden, um ungewollte Seiteneffekte zu vermeiden.
Twig-Integration in Modulen
Auch eigene Module profitieren von der neuen Template-Struktur. Module mit eigenen Templates sollten künftig die Twig-Engine deklarieren und ihre Views als .twig-Dateien bereitstellen.
Beispielhafte Deklaration in metadata.php:
'templates' => [
'mywidget.twig' => 'vendor/module/Application/views/twig/mywidget.twig'
]
Die Templates selbst werden entweder direkt gerendert oder in bestehende Twig-Layouts integriert. Eine saubere Trennung zwischen Business-Logik und Darstellung lässt sich dabei deutlich einfacher umsetzen als mit Smarty.
Tools und Debugging-Hilfen
OXID eShop 7.2 integriert Twig mit Symfony-Komponenten, was die Nutzung von bekannten Tools erleichtert. Die Aktivierung des Symfony-Debug-Modus zeigt ausführliche Template-Fehlermeldungen. Zusätzlich kann die Browser-Erweiterung Twig Profiler verwendet werden.
Als Plugin empfiehlt sich außerdem das „OXID Twig Debug Bundle“, das zusätzliche Logging-Funktionen bereitstellt. Damit lassen sich Probleme in der Template-Hierarchie leichter lokalisieren.
Performance und Caching mit Twig
Ein oft unterschätzter Vorteil der Migration ist die erhebliche Performance-Verbesserung durch optimiertes Template-Caching. Twig kompiliert die Templates in PHP-Klassen, was die Ladezeiten deutlich reduziert.
OXID verwaltet das Caching automatisch, auch die Clear-Cache-Funktion im Admin bleibt nutzbar. Wer tiefer ins Performance-Tuning möchte, kann über die Symfony-Konfiguration eigene Cache-Treiber (z. B. OPcache oder Redis) anbinden.
Entwicklung eines Child-Themes auf Basis von Apex
Für die meisten Projekte bietet es sich an, ein eigenes Theme auf Basis von Apex zu entwickeln – entweder als Child-Theme oder als eigenständige Kopie. Die Vorteile: Bereits enthaltene Twig-Struktur, moderne SCSS-Variablen, responsive Layout-Breakpoints sowie ein erweitertes Komponenten-System.
Das Vererben über {% extends "@parent/layout/base.twig" %}
sichert eine hohe Wiederverwendbarkeit und macht das Customizing updatesicher. Durch die logische Trennung von Templates, Layout und Modulen lässt sich langfristig eine konsistente Designstruktur etablieren.
Empfohlene Schritte für eine erfolgreiche Migration
Die Migration von Smarty auf Twig im OXID eShop 7.2 sollte strategisch geplant und gut dokumentiert werden. Die folgenden Schritte haben sich in der Praxis bewährt:
- Audit vorhandener Templates und Module
- Aufsetzen eines Twig-basierten Testprojekts
- Entwicklung einer gemeinsamen Basis für Layouts und Blöcke
- Parallele Integration über theme chains
- Testing aller migrierten Ansichten und Funktionalitäten
- Aktives Error Logging und Einsatz von Debug-Tools
- Schulung des Entwicklerteams im Umgang mit Twig
Mit der zunehmenden Etablierung von OXID 7.x ist Twig das bevorzugte Template-System für zukunftsfähige E-Commerce-Projekte. Die Umstellung mag initial Aufwand bedeuten, zahlt sich langfristig jedoch mehrfach aus – durch bessere Codequalität, Performance und Developer Experience.
Agenturen und Entwickler, die frühzeitig auf Twig setzen, sichern sich einen technologischen Vorsprung und können sich optimal auf kommende Produktversionen und Features des OXID eShop vorbereiten. Die Migration ist mehr als nur ein technisches Update – sie ist ein wichtiger Schritt in Richtung moderne E-Commerce-Architektur.