studyklar
IProg · Skript 7 · Abschnitt 4

Smarty-Templates: Syntax, Modifikatoren, Funktionen

Auch eine View aus HTML und PHP-Schleifen ist noch ein Gemisch. Eine Template Engine trennt beides ganz. Hier steht, wie die Template Engine Smarty arbeitet und wie ihre Templates aussehen. Mit Weiter geht es Schritt für Schritt voran.

Worum es geht

Skript 07 (PHP – Architektur), Folien 14 bis 21: Template Engines, Smarty, Verzeichnisse, Syntax, ein Template-Beispiel, Modifikatoren und Funktionen.

Die Frage des Abschnitts: Wie schreibt man eine View ohne PHP-Code, und was kann ihre eigene Sprache?

So gehen wir vor:

  1. Was eine Template Engine ist und wie Smarty arbeitet.
  2. Die Syntax: Kommentare, Variablen, include, foreach.
  3. Modifikatoren und Funktionen.
  4. Eine Klausurfrage.
Aus Skript 07, Folie 12: Die PHP-View enthält HTML und sehr einfaches PHP: Bedingungen, Schleifen, einfache Umformungen. Der Controller übergibt ihr die Daten.

Eine eigene Sprache für die View

Skript · Template Engines (Folie 14)

Vorteile:

  • einfacher zu lesen und zu verstehen
  • leichter zu warten und zu ändern
  • komfortabler durch mächtige Sprachkonstrukte

Ein Template ist eine Vorlage: HTML mit Platzhaltern für die Daten. Eine Template Engine ist das Programm, das die Platzhalter füllt. Die Templates haben eine eigene, kleine Sprache, getrennt von PHP.

Die Engine wandelt diese Sprache in die Zielsprache um, hier in PHP. Das macht entweder ein Interpreter bei jedem Aufruf oder ein Compiler vorab.

Templates statt PHP-Views

  • View: V1.tpl … VX.tpl (Templates).
  • Controller: Controller.php.
  • Model: Tab1DB.php … TabXDB.php.

Folie 15 zeigt dasselbe Bild wie Folie 13, nur heißen die Views jetzt V1.tpl bis VX.tpl. Controller und Model bleiben PHP.

Die Endung .tpl steht für Template. In einer solchen Datei steht kein PHP mehr. Ein Webdesigner kann sie bearbeiten, ohne PHP zu kennen.

Aus Skript 07, Folie 13: Views V1.php bis VX.php, ein Controller.php, je Tabelle eine Klasse Tab1DB.php bis TabXDB.php.
Noch 13 Schritte bis zum Ergebnis
Den ganzen Lösungsweg sehen Studierende und Lehrende der HS KL. Registriere dich mit deiner Adresse @stud.hs-kl.de oder @hs-kl.de, dann geht es hier direkt weiter.

Abbildung 1Template Engines

Folien 14 bis 17

templates/index.tpldas Template: HTML mit Smarty-Befehlen in { }
HTML-Seite an den Browser
LegendeTeil des SchrittsEin Template wird zur HTML-Seite für den Browser.