Alternative Templatesyntax

Yii erlaubt es dem Entwickler, seine eigene bevorzugte Templatesyntax (z.B. von Prado oder Smarty) für Controller- und Widgetviews zu verwenden. Dazu muss eine viewRenderer-Komponente erstellt bzw. konfiguriert werden. Diese Komponente fängt die Aufrufe von CBaseController::renderFile ab, kompiliert die Viewdatei in der entsprechenden Syntax und rendert das Ergebnis.

Info: Es wird empfohlen, die alternative Syntax nur bei Views einzusetzen, die kaum wiederverwendet werden. Andernfalls müssten alle, die den View wiederverwenden möchten, die selbe alternative Syntax in ihrer Anwendung einsetzen.

Wir zeigen im Folgenden, wie man den CPradoViewRenderer verwendet, um mit einer ähnlichen Templatesyntax wie in Prado zu arbeiten. Möchte man seinen eigenen Viewrenderer verwirklichen, ist der CPradoViewRenderer ein guter Ausgangspunkt dafür.

Einsatz des CPradoViewRenderer

Um den CPradoViewRenderer zu verwenden, muss folgende Anwendungskomponente konfiguriert werden:



Standardmäßig kompiliert der CPradoViewRenderer die Viewdateien und speichert die resultierenden PHP-Dateien im Runtime-Verzeichnis der Anwendung. Diese PHP-Dateien werden nur dann neu generiert, wenn die Quelldatei sich geändert hat. Auf diese Weise verringert der Einsatz von CPradoViewRenderer die Performance nur unwesentlich.

Tipp: Der CPradoViewRenderer führt hauptsächlich vereinfachende Templatetags für Views ein. Daneben kann man aber auch immer noch normalen PHP-Code in Views verwenden.

Folgende Templatetags werden vom CPradoViewRenderer unterstützt:

Kurze PHP-Tags

Kurze PHP-Tags sind Kurzschreibweisen für PHP-Ausdrücke und -Anweisungen in einem View. Der Tag <%= Ausdruck %> wird zu <?php echo Ausdruck ?> übersetzt, während <% Anweisung %> zu <?php Anweisung ?> übersetzt wird. So wird



übersetzt zu



Komponententags

Komponententags dienen zum Einfügen eines Widgets in einem View. Sie verwenden diese Syntax:



wobei WidgetKlasse den Klassennamen oder Pfadalias des Widgets definiert und die Startwerte für Eigenschaften entweder in doppelten Anführungszeichen oder als PHP-Ausdruck in geschweiften Klammern angegeben werden können.



würde damit übersetzt zu



Hinweis: Der Wert für showRefreshButton wird als {false} statt "false" angegeben, da letzteres einen String statt eines boole'schen Wertes darstellen würde.

Cachetags

Cachetags sind Abkürzungen zum Cachen von Fragmenten. Die Syntax lautet



wobei abschnittID ein eindeutiger Bezeichner für den zu cachenden Inhalt sein sollte und die Eigenschafts-Werte-Paare zum konfigurieren des Caches dienen. Zum Beispiel würde



übersetzt werden in



Cliptags

Wie Cachetags sind auch Cliptags Abkürzungen um CBaseController::beginClip und CBaseController::endClip in einem View aufzurufen. Die Syntax lautet



wobei clipID ein eindeutiger Bezeichner für den Clipinhalt ist. Cliptags werden übersetzt zu



Kommentartags

Kommentartags sind für Viewkommentare gedacht und nur für Entwickler sichtbar. Kommentartags werden vor der Anzeige aus dem View entfernt. Die Syntax lautet hier



Mischen von Templateformaten

Seit Version 1.1.2 kann die alternative Templatesyntax auch gemeinsam mit der normalen PHP-Syntax von Viewdateien eingesetzt werden. Dazu muss CViewRenderer::fileExtension des Viewrenderers auf einen anderen Wert als .php gesetzt werden. Konfiguriert man diese Eigenschaft z.B. auf .tpl, werden alle Dateien mit der Endung .tpl mit dem angegebenen Viewrenderer dargestellt. Alle anderen Dateien werden als normale PHP-Viewdateien behandelt.

$Id: topics.prado.txt 3226 2011-05-18 10:37:47Z mdomba $