Der Generator spricht Twig

in  Generator , , , , ,

Der Generator spricht Twig

Zwischen den Jahren konnte ich etwas Zeit erübrigen und in den ModuleStudio Generator investieren, um eine größere Umstellung durchzuführen: bei Anwendungen für Zikula 1.4.x wird nun Twig an Stelle von Smarty verwendet. Anwendungen für 1.3.x verwenden weiter Smarty wie bisher.

Im Wesentlichen lief die Umstellung ziemlich geradlinig, da die meisten Konzepte aus Smarty analog auch mit Twig implementiert werden können.

Eine Besonderheit betrifft die Behandlung von Assets, also CSS-, JS- und Bilddateien: statt direkt die Asset-Komponente von Symfony zu verwenden, wird in Zikula eine darauf aufbauende zasset-Funktion eingesetzt, welche einige Besonderheiten des Zikula-Frameworks beachtet. Außerdem werden CSS- und JS-Dateien auf Grund der Modularität von Zikula-Systemen nicht einfach in einem Twig-Block eingebunden, sondern nach wie vor über PageVars zentral registriert. Beides zusammen sieht dann in etwa so aus:

{{ pageAddAsset('stylesheet', zasset('@MeinModul:css/style.css')) }}
{{ pageAddAsset('javascript', zasset('@MeinModul:js/SomeFunctions.js')) }}

Ein Beispiel findet sich in Christian’s Medienmodul. Hier wird als letzter Parameter noch eine Zahl zur Gewichtung mit angegeben, die Einfluß nimmt auf die Reihenfolge der letztendlich ausgegebenen script-Tags.

Eigene Smarty-Plugins und -Modifier werden nun als Twig Extensions (Funktionen und Filter) generiert. Hierbei werden im Generator übergangsweise auch ein paar zusätzliche Extensions für Funktionen mit erzeugt, die es im Core als Smarty-Plugins gibt, für die aber noch kein Twig-Pendant existiert. Dazu zählen beispielsweise Erweiterungen für den Avatar eines Nutzers, die Verlinkung seines Benutzerprofils oder die Erzeugung und Integration von Thumbnails mittels der Imagine-Bibliothek.

Aktuell bereite ich den nächsten technologischen Meilenstein vor: nach Twig soll nun auch Symfony Forms endlich im Generator Verwendung finden. Das ist der letzte größere Brocken auf dem Weg zur 2.0-konformen Modulstruktur. Anschließend stehen “nur” noch Bugfixes und Detailverbesserungen an, so dass sich ModuleStudio 0.7 zumindest von Seiten des Generators aus der Fertigstellung nähert.

Weitere Beiträge in Kategorie Generator

Verbesserungen rund um Doctrine im Bundle-Generator
- Es geht weiter mit den Aufräumarbeiten im Generator von ModuleStudio: nach den im letzten Beitrag beschriebenen Anpassungen rund um PHP 8 liegt aktuell der Fokus auf den Umgang mit Doctrine-Entitäten …
Der Bundle-Generator bekommt eine Verschlankungskur
- In den letzten Tagen sind die ersten Arbeitsschritte zur weiteren Modernisierung der von ModuleStudio generierten Symfony-Bundles bzw. Zikula-Module umgesetzt worden. Dieser Beitrag zeigt kurz die …
ModuleStudio 1.4.0 wurde soeben veröffentlicht
- Eine neue Version von ModuleStudio steht zum Download auf der Projektseite bereit. ModuleStudio 1.4.0 bringt komplette Unterstützung von Anwendungen für das gestern veröffentlichte Zikula 3 und dem …
Funktionen im Generator zur Versionierung von Daten
- ModuleStudio erlaubt die Nutzung unterschiedlicher Doctrine-Erweiterungen, indem diese im jeweiligen Anwendungsmodell aktiviert und ggf. konfiguriert werden. Neben Baumstrukturen (tree / nested set), …
Neue Generator-Verbesserung zur Darstellung von Geodaten
- Bereits seit einigen Jahren ist es möglich, Entitäten in ModuleStudio als geografisch zu kennzeichnen. Dies führt dazu, dass den entsprechenden Objekten Felder zur Speicherung von Koordinaten …