Twig ist jetzt die neue Brezel-Templating-Engine of Choice
Twig ist eine Templating-Engine für PHP und ist im Symfony-Ökosystem etabliert. Mit Twig ist es möglich, sowohl Ausdrücke zu definieren als auch den Kontrollfluss zu steuern, wie bei Laravel Blade auch. Gravierender Unterschied ist, dass Twig über einen Sandbox-Modus verfügt und somit das Ausführen nicht genehmigter Funktionen und Methoden eingeschränkt werden kann. Das ist auch der Grund, warum wir Blade hinter uns lassen, denn Blade wird einfach in PHP-Code übersetzt und bietet daher keine Schutzmechanismen. Das bedeutet auch, dass es kein @php
-Tag in unserer Twig-Umgebung geben wird. Komplexe Logik kann aber auch in Twig umgesetzt werden, etwa durch set
, for
und if
. Auch Arrow-Functions sind in Twig vorhanden, sodass gängige Operationen auf Laravel-Collections wie map
, filter
, etc. von PHP in Twig konvertiert werden können. Siehe dazu etwa https://twig.symfony.com/doc/3.x/filters/filter.html.
Twig-Docs: https://twig.symfony.com/doc/3.x/templates.html
Was bedeutet das für neue Systeme?
Views in neuen Systemen DÜRFEN NICHT mehr auf Blade basieren. Da die einzig andere Templating-Engine in Brezel Twig ist, MUSS Twig verwendet werden.
Was bedeutet das für mein System?
Während der Übergangsphase MÜSSEN neue Views Twig verwenden. Views, die bis jetzt auf Blade basiert haben, SOLLEN in Twig konvertiert werden.
Über die Dauer der Übergangsphase muss noch abgestimmt werden. Fest steht, dass Blade-Templates nun deprecated sind.
How to use
Siehe den bakery_resource_view
-Abschnitt auf der “Bakery Planner”-Seite.