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.
<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.
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.
Level | Bootstrap-Klasse | Farbe |
---|---|---|
info | alert alert-primary | blau |
success | alert alert-success | grün |
error | alert alert-danger | rot |
warning | alert alert-warning | gelb |