Skip to content

Twig Views

Views enthalten Code für das Frontend, also vor allem HTML. Die Präsentation der Daten kann durch Bedingungen und Schleifen gesteuert werden, es sollte aber keine Anwendungslogik in den Views enthalten sein.

Für das Erstellen von Views wird die Twig Template Engine verwendet, welche neben eleganter Syntax auch komplexe Features wie Template-Vererbung und Caching zur Verfügung stellt.

Auf eine ausführliche Beschreibung von Twig wird an dieser Stelle vorerst verzichtet. Weitere Informationen finden sich in der offiziellen Dokumentation.

Ordnerstruktur

Views liegen im Ordner views und haben die Dateiendung .twig. Es gibt keine Vorschriften zur Namensgebung, es bietet sich jedoch an, die Views in Unterordnern zu organisieren, die mit den Controllern des Projekts übereinstimmen.

Syntax

Variablen werden durch doppelte geschweifte Klammern ausgegeben und dabei automatisch escaped, um XSS-Angriffe zu verhindern. Auf Array-Elemente oder Attribute von Objekten kann mit dem Punktoperator zugegriffen werden.

html
<p>Der Benutzername lautet {{ user.name }}.</p>

Flash Messages

Flash Messages sind Nachrichten, die einmalig in der nächsten View angezeigt werden. Dabei ist es egal, ob diese View im selben Request oder erst nach einer oder mehreren Weiterleitungen gerendert wird. Um Nachrichten an folgende Requests weiterzugeben, wird die PHP-Session genutzt.

Mit der Methode flash(string $type, string $message) der Klasse RHRZ\Framework\Session wird eine Flash Message für die nächste View vorgemerkt.

php
use RHRZ\Framework\Session;

Session::flash('error', 'Ein Fehler ist aufgetreten.')

Der erste Parameter gibt den Typ der Nachricht an, zum Beispiel error für Fehlermeldungen. In der Datei views/app/inc/flash.twig sind vier Typen vorgesehen, die in folgender Reihenfolge als Bootstrap-Alert ausgegeben werden.

LevelBootstrap-KlasseFarbe
infoalert alert-primaryblau
successalert alert-successgrün
erroralert alert-dangerrot
warningalert alert-warninggelb