Symfony Grundkurs

Das Twig-Template einsetzen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Twig ist zwar ein eigenes Projekt, kommt aber – wie Symfony selbst – aus dem Hause SensioLabs und ist zudem bei der grundlegenden Projektinstallation standardmäßig mit dabei.
05:55

Transkript

Sie können HTML auch direkt in die "action" von einem Controller schreiben und dank des Routings würde es auch ausgegeben werden, aber wir würden dabei Design und Datenlogik vermischen und das ist selten eine gute Idee, und führt über kurz oder lang zu Komplikationen bzw. auf jeden Fall zu Unklarheiten. Es ist also klüger, ein Template rendern zu lassen, so wie es hier zu sehen ist. Hier ist die Render-Funktion und gerendert wird eben eine "index.html.twig", die in diesem Fall in meinem "PlanBundle" drin liegt. Allerdings muss es nicht unbedingt so eine Twig-Datei sein, sondern eigentlich eignet sich jede Textdatei als Template, aber Symfony bringt eine eigene Template-Engine mit, nämlich besagte Twig und es wäre eine Verschwendung von Ressourcen, sich nicht deren Vorteile zunutze zu machen, denn Twig ist sehr mächtig und trotzdem gut umsetzbar. Es sorgt für ein Einhalten dieser gerade beschriebenen Gewaltentrennung zwischen Design und Logik und ist zudem aus demselben Haus wie Symfony, nämlich von SensioLab und deswegen gleich bei der grundlegenden Installation des Projekts mit angelegt und mit eingearbeitet worden. Sehen wir uns mal praktisch an, worum es beim Rendern geht. Rendern kann ich dann, wenn ich meinen speziellen Controller und das ist der Controller von meinem Plan-Projekt, mit dem zugrundeliegenden Controller des Systems erweitere und dieser Controller bringt diese Render-Funktion mit, mit deren Hilfe ich dann spezielle Templates rendern lassen kann, wobei diese Twig-Templates ähnlich funktionieren wie diese russischen Babuschka-Puppen, das heißt, ich kann sie aufeinander verweisen lassen und es gibt sozusagen die Urmutter aller Templates und die liegt aber im "app"-Verzeichnis, weil dort liegt das große "resources"-Verzeichnis mit dem "views"-Verzeichnis für das gesamte Projekt. Auch hier gibt es einen "default"-Ordner, wo eine "index"-Datei drinnen liegt. Außerhalb davon aber gibt es die "base.html.twig" und das ist sozusagen die Datei oder das Template, das ummantelnd um alle anderen Templates herumliegt. Das heißt, hier werden später dann all die Elemente untergebracht, die auf jeder Seite wieder auftauchen sollen. Ein paar von diesen Elementen sind schon vorangelegt und das mit einer ganz typischen Twig-Syntax. Sie erkennen die Twig-Syntax dann, wenn Sie so geschwungene Klammern sehen und hier haben wir es gleich mit Block-Elementen zu tun, d.h., ich habe einen bestimmten Block, dann kommt in diesen Block was hinein und dann wird dieser Block auch wieder beendet. Wenn sie sich die Syntax von Twig in einem Überblick für das Erstellen von Templates ansehen wollen, dann ist ein guter Ort dafür die Dokumentation von Symfony. Und ich bin hier in der speziellen Dokumentation für die Version 2.8. Was ich toll finde ist, dass man das hier eben wählen kann und da finden sie dann diese drei grundlegenden Spezial-Syntaxversionen, mit denen wir innerhalb von Twig arbeiten können und die sind relativ einfach erklärt. Es geht hier immer mehr oder weniger um diese geschwungenen Klammern. Und diese erste Version der geschwungenen Klammer steht für "Sag was" und gibt Variablen oder Ausdrücke in einem Template zurück und hier die Version mit dem Prozentzeichen, was wir auch schon in unserem "base.html" gesehen haben. Das ist die Syntax für "Mach was", und damit wird die Logik innerhalb des Templates kontrolliert. Im Beispiel von "base.html.twig" war das eben das grundsätzliche Erstellen von bestimmten Blöcken, die dann von Kind-Templates ausgefüllt werden können. Und hier gibt es nachher noch zu guter Letzt die Möglichkeit etwas zu kommentieren, also "kommentier was". So können Texte im Template hinterlegt werden, die beim Rendern eben nicht mit ausgegeben werden. Zusätzlich gibt's dann noch die Möglichkeit, dass man mithilfe von einer Pipe gewisse Filter einbaut. Alles in allem ist es so, dass Twig ganz ähnlich tickt wie PHP, aber eben kein prinzipielles PHP ist. Was es allerdings dann tut und warum es so schnell ist und so effektiv arbeiten kann. Twig verarbeitet zwar selbst kein PHP. Seine Aufgabe besteht aber darin, die Präsentation der Inhalte bereitzustellen und gezielt zwar diese Trennung zu leben, aber jedes Template wird Twig-intern dann zu einer eigenen PHP-Klasse umgebaut und damit kriegt man eine ziemliche Geschwindigkeit beim Umsetzen innerhalb dieser Template-Engine zustande und das gereicht natürlich uns zum Vorteil. Twig ist sehr komplex, nichtsdestotrotz leicht zu lernen und in den Grundzügen auch schnell einzusetzen.

Symfony Grundkurs

Steigen Sie in die moderne und flexible PHP-Entwicklung mit dem praktischen Framework ein.

2 Std. 35 min (34 Videos)
Derzeit sind keine Feedbacks vorhanden...
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:18.01.2017

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!