Skip to content
TYPO3 Extension

Microtemplate for TYPO3

Micro template engine for TYPO3: small text blocks with variable substitution. Simpler than Fluid for simple string templating tasks.

Book a free initial call

Fluid ist manchmal Overkill, wenn man nur einen String mit Variablen füllen will

Nicht jedes Template-Problem braucht die volle Fluid-Engine. Wenn eine E-Mail-Betreffzeile “Hallo {name}, Ihre Bestellung #{orderNumber}” lauten soll oder ein Snippet im Footer “Letzte Aktualisierung: {date}” anzeigen soll, ist Fluid mit ViewHelpers, Layouts und Partials architektonischer Overhead. microtemplate liefert eine minimale Template-Engine für TYPO3, die Variablen in Textbausteinen ersetzt. Kein Fluid, kein TypoScript-Objekt-Pfad, kein Template-File. Ein String mit Platzhaltern, ein Array mit Werten, fertig.

Die Extension ist ein Nischenwerkzeug für Entwickler, die in Extensions oder TypoScript-Konfigurationen einfache String-Substitutionen brauchen, ohne die Fluid-Rendering-Pipeline zu starten. Für Redakteure ist microtemplate nicht direkt sichtbar, es arbeitet im Hintergrund als Utility. Der Anwendungsbereich ist bewusst eng: Wo Fluid die richtige Wahl für komplexe Templates mit Schleifen, Bedingungen und Vererbung ist, deckt microtemplate den simplen Fall ab, in dem ein fertiger String an drei Stellen einen dynamischen Wert braucht.

Typical use cases include E-Mail-Texte, dynamische Snippets und Konfigurations-Templates

Das häufigste Szenario ist die Generierung von E-Mail-Texten in Extensions. Eine Custom-Extension verschickt Bestätigungs-Mails, und der Betreff und Body sollen konfigurierbar sein, ohne dass der Entwickler Fluid-Templates anlegen muss. microtemplate liest den Text aus einer TypoScript-Konstante (“Bestellung #{orderNumber} bestätigt”) und ersetzt die Platzhalter mit den aktuellen Werten.

Zweites Szenario: Dynamische Text-Snippets in TypoScript-Konfigurationen. Ein Seitentitel-Pattern wie “{siteName} - {pageTitle} | {category}” wird über microtemplate aufgelöst. Das ist einfacher als ein COA mit mehreren TEXT-Objekten und stdWrap-Funktionen.

Drittes Szenario: Konfigurations-Templates für Third-Party-Integrationen. Wenn eine Extension einen API-Endpoint konfigurierbar macht (“https://api.example.com/{version}/users/{userId}”), kann microtemplate die Platzhalter vor dem API-Call ersetzen. Das ist besonders nützlich für Extensions, die mehrere API-Umgebungen (Staging, Production) unterstützen und die Endpoint-Struktur nicht im Code, sondern in der TypoScript-Konfiguration pflegen wollen.

Ein viertes Szenario, das in der Praxis gelegentlich auftaucht: Log-Nachrichten mit strukturiertem Format. Eine Extension schreibt “Import von {count} Datensätzen aus {source} abgeschlossen um {time}” ins TYPO3-Log. microtemplate macht den Log-Text konfigurierbar, ohne dass der Entwickler sprintf-Aufrufe mit positionsbasierten Argumenten pflegen muss.

Technical architecture ist eine einzige PHP-Klasse mit String-Replacement

microtemplate besteht im Kern aus einer einzigen PHP-Klasse, die str_replace oder preg_replace auf einem Template-String ausführt. Die Platzhalter folgen einer definierbaren Syntax (Standard: {variableName}). Ein assoziatives Array liefert die Werte. Die Klasse hat keine Abhängigkeiten ausser dem PHP-String-Handling.

Die Integration in TYPO3 erfolgt über einen Service oder eine statische Methode, die in anderen Extensions oder TypoScript-Konfigurationen aufgerufen wird. Es gibt kein Frontend-Plugin, kein Backend-Modul und kein Content-Element. microtemplate ist reine Infrastruktur für Entwickler.

Die Performance ist vernachlässigbar: Ein str_replace auf einem 500-Zeichen-String mit 5 Variablen dauert weniger als 0,01ms. Im Vergleich dazu startet die Fluid-Engine für das gleiche Ergebnis einen vollständigen Rendering-Zyklus mit Template-Parsing, ViewHelper-Instanziierung und Caching, was bei 1 bis 5ms liegt. In einem typischen Page-Rendering-Prozess fällt dieser Unterschied nicht auf, aber in Schleifen, die 1.000 E-Mails oder 500 Log-Einträge generieren, wird der Performance-Vorteil messbar.

Die Extension hat keine Datenbank-Tabellen, keine Backend-Module und keine Frontend-Plugins. Sie wird über Composer oder den Extension-Manager installiert und ist sofort einsetzbar. Das macht microtemplate zu einer der leichtgewichtigsten Extensions im gesamten TER (TYPO3 Extension Repository).

Common problems include fehlende Escaping-Logik, Syntax-Konflikte und mangelnde Dokumentation

Problem eins: Kein automatisches HTML-Escaping. microtemplate ersetzt Platzhalter 1:1, ohne den eingesetzten Wert zu escapen. Wenn ein Nutzername HTML-Tags enthält (“”), wird das direkt in den Output geschrieben. Die Lösung: Werte vor dem Einsetzen manuell escapen (htmlspecialchars) oder microtemplate nur für interne, nicht nutzergenerierte Daten verwenden.

Problem zwei: Syntax-Konflikte mit Fluid. Wenn microtemplate-Platzhalter ({variable}) in einem Kontext verwendet werden, in dem auch Fluid rendert, versucht Fluid die Platzhalter aufzulösen und wirft einen Fehler. Die Lösung: Unterschiedliche Platzhalter-Syntax verwenden (z.B. {{variable}} oder %variable%) oder sicherstellen, dass microtemplate vor Fluid ausgeführt wird.

Problem drei: Mangelnde Dokumentation und Community-Support. microtemplate ist eine Nischen-Extension mit minimaler Nutzerbasis. Bei Problemen gibt es keine aktive Community, kein Issue-Tracking und keine Stack-Overflow-Antworten. Entwickler müssen den Quellcode lesen, um das Verhalten zu verstehen. In der Praxis führt das dazu, dass jeder Entwickler im Team die Extension anders nutzt, weil keine Konventionen dokumentiert sind.

Ein weiteres Thema: Debugging. Wenn ein Platzhalter nicht ersetzt wird, weil der Key im Array nicht exakt mit dem Platzhalter-Namen übereinstimmt (Gross-/Kleinschreibung, Leerzeichen), gibt microtemplate keine Warnung aus. Der Platzhalter bleibt einfach stehen, und der Entwickler sucht den Fehler an der falschen Stelle. Ein Debug-Modus, der nicht aufgelöste Platzhalter loggt, wäre hilfreich, fehlt aber.

Die Extension ist TYPO3-versionsunabhängig, aber für moderne Projekte gibt es bessere Alternativen

Da microtemplate nur Standard-PHP-Funktionen nutzt, funktioniert die Extension prinzipiell mit jeder TYPO3-Version von v7 bis v13. Die Frage ist eher, ob sie noch nötig ist: Seit PHP 8.0 bietet Named Arguments in Kombination mit sprintf oder str_replace die gleiche Funktionalität ohne Extension. Für komplexere Templates ist Fluid trotz des Overheads die bessere Wahl, weil es Caching, Escaping und Template-Vererbung mitbringt. Gosign setzt microtemplate in Bestandsprojekten nicht aktiv ein und empfiehlt bei Neuimplementierungen, die Funktionalität direkt in der eigenen Extension oder im TypoScript über stdWrap abzubilden.

Free initial call: 30 minutes with a TYPO3 specialist

We analyse your project, estimate effort and timeframe, no-obligation, no preparation needed.

Discuss project, 30 min, free

25 years of TYPO3 experience · 800+ extensions analysed · AI-accelerated development

AI-accelerated development: 65% faster

TYPO3 Update & GDPR Audit

We upgrade your TYPO3 installation cost-effectively to the current LTS version - including all extensions, even outdated and unmaintained ones.

All extensions migrated

Including outdated, unmaintained or custom developments.

Fixed-price offer

Transparent costs, no hidden rework.

AI-accelerated

30-50% cheaper than market average thanks to AI-assisted code analysis.

Zero data loss

Complete data migration with rollback safety.

GDPR Audit: We audit your TYPO3 installation for GDPR compliance - cookie consent, tracking, extensions, forms and hosting - and implement all measures cost-effectively.

Gosign is a Hamburg-based digital agency with 25 years of experience in TYPO3 development. We have analysed over 800 TYPO3 extensions and today develop with AI assistance up to 70% faster than with classic methods. Our clients are mid-sized companies, universities and public institutions across Europe.

Last updated: April 2026

Book a free initial call

30 minutes with a TYPO3 specialist, no-obligation.