HTML5
Kati Pierson
Mittwoch, den 19. Oktober 2016 um 04:33 Uhr

TWIG – Das bessere HTML

Mit HTML wird das Gerüst einer Website gebaut. Mit CSS malt man die Website an. Doch wie können einfache logische Operationen durchgeführt werden oder Daten-Arrays dargestellt werden? Die Antwort hat vier Buchstaben: TWIG.

Genau genommen ist TWIG kein besseres HTML. Es ist eine Template-Engine für PHP.  Twig ist somit vergleichbar mit Smarty und Fluid. HTML wird also weiterhin benötigt. Es kann nur mit Twig besser strukturiert werden. Somit ist die Trennung zwischen Code und Design perfekt möglich.

Twig versus Smarty

Ich persönlich habe bereits 2002 mit Smarty gearbeitet. Warum? Es war damals total in. Die Einarbeitungszeit war höher, dass ist sie auch bei TWIG. Doch im Gegensatz zur sehr schnellen TWIG-Engine lag die Performance unter der reinen PHP-nativen Ausgabe. Bei Smarty ist ein erheblicher zusätzlicher Aufwand nötig um wirklich Code von Design zu trennen. Bei Twig ist dies nicht unbedingt der Fall.

Twig wird von IDEs wie Netbeans, PHPStorm und vielen anderen unterstützt. Smarty wurde lange nicht unterstützt. Auch war eine rekursive Ausgabe – wie sie zum Beispiel bei Arrays benötigt wird – nicht möglich. Somit war ich nicht sonderlich überzeugt von TWIG, bis ich es 2012 in einem Projekt einsetzen musste, weil das CMS-System nur mit TWIG oder Hangar arbeitete. Hangar war weniger dokumentiert und in dem CMS zu diesem Zeitpunkt fast deprecated. Also lernte ich TWIG.

TWIG – die wichtigsten Features

Zu meinem Erstaunen war es sehr simpel.

  • Die Syntax bei Statements und Schleifen ähnelte sehr der PHP-Syntax.
  • Durch die gute Dokumentation konnten Probleme schnell gelöst werden.
  • Das MVC-Modell (Model – View – Controller) wird ohne große Aufwände unterstützt.
  • Das Prinzip ist sehr leicht zu verstehen.
  • Die Implementation ist vergleichsweise einfach.
  • In Symfony – einem PHP-Framework – ist diese Enginge bereits vorinstalliert.
  • Sie ist sehr schnell und steht der nativen Implementation kaum nach.
  • Sie ist sehr flexibel und erlaubt das Erweitern von Tags und Filtern.
  • Viele Filter und Tags sorgen für ein effizientes Arbeiten vom ersten Augenblick an.
  • Der Sandbox-Modus erlaubt das Testen von neuem Code.
  • Trotz eines Open Source Projektes ist sie besser getestet als viele kostenpflichtige Programme.

Mittlerweile bin ich ein Verfechter von TWIG und freue mich, dass ich in WordPress mit Plugin Timber diese Template-Engine ebenfalls verwenden kann. Hier funktioniert MVC wie folgt:

  • Model – die Daten aus der Datenbank.
  • Controller – die PHP-Dateien, die diese Daten auslesen und nachbearbeiten.
  • View – die Twig-Dateien, die die HTML-Code enthalten

Einziger Nachteil ist, dass eigene Plugins entweder sehr speziell auf das Theme angepasst werden müssen oder der HTML-Code dort immer noch im Controller liegt. Je nach Projekt und Plugin – trenne ich die Steuerung von der Ausgabe. Hauptkriterium ist hier die Antwort auf die Frage: Soll das Plugin später auf anderen WordPress-Instanzen laufen oder ist es speziell für diesen Anwendungsfall gedacht.