Heim  >  Artikel  >  Backend-Entwicklung  >  Offizieller Yii Framework-Leitfaden, Serie 49 – Spezialthema: Verwendung von Nicht-Mainstream-Vorlagensyntax

Offizieller Yii Framework-Leitfaden, Serie 49 – Spezialthema: Verwendung von Nicht-Mainstream-Vorlagensyntax

黄舟
黄舟Original
2017-02-16 09:46:311363Durchsuche



Das Yii-Framework ermöglicht es Entwicklern, ihre bevorzugte Vorlagensyntax (wie Prado, Smarty) zu verwenden, um die Ansicht eines Controllers oder Widgets zu schreiben Dies kann durch Schreiben und Installieren einer viewRenderer-Anwendungskomponente erfolgen. Dieser Ansichtsrenderer fängt den Aufruf von CBaseController::renderFile ab, kompiliert die Ansichtsdatei mithilfe einer benutzerdefinierten Vorlagensyntax und rendert dann das endgültige Kompilierungsergebnis.

Info:Es wird empfohlen, nur dann eine benutzerdefinierte Vorlagensyntax zu verwenden, wenn Ansichten geschrieben werden, die selten wiederverwendet werden. Andernfalls wird durch die Wiederverwendung von Ansichten in der Anwendung die Verwendung derselben Vorlagensyntax erzwungen.

Als nächstes stellen wir die Verwendung von CPradoViewRenderer vor, einem Ansichtsrenderer ähnlich dem Prado-Framework, der es Entwicklern ermöglicht, eine benutzerdefinierte Vorlagensyntax zu verwenden. Wenn Sie Ihren eigenen Ansichtsrenderer entwickeln möchten, ist CPradoViewRenderer eine gute Anleitung.

1. Um CPradoViewRenderer zu verwenden, müssen wir die Anwendung nur wie folgt konfigurieren:CPradoViewRenderer


return array(
    'components'=>array(
        ......,
        'viewRenderer'=>array(
            'class'=>'CPradoViewRenderer',
        ),
    ),
);
Standardmäßig kompiliert CPradoViewRenderer die Quellansichtsdateien und speichert die resultierenden PHP-Dateien nur dann, wenn die Quellansichtsdateien geändert werden. Daher führt die Verwendung von CPradoViewRenderer zu sehr geringen Leistungseinbußen .

Im Folgenden stellen wir die Template-Tags vor, die von CPradoViewRenderer unterstützt werden.

PHP-Kurztags

Kurze PHP-Tags sind Abkürzungen zum Schreiben von PHP-Ausdrücken und Anweisungen in einer Ansicht. Das Ausdrucks-Tag wird in

übersetzt, während das Anweisungs-Tag
zu

wird ><%= expression %><?php echo expression ?><% statement %><?php statement ?>wird übersetzt in


<%= CHtml::textField($name,&#39;value&#39;); %>
<% foreach($models as $model): %>

Komponenten-Tag

Komponenten-Tags werden zum Einfügen eines Widgets in eine Ansicht verwendet. Es verwendet die folgende Syntax:

<?php echo CHtml::textField($name,&#39;value&#39;); ?>
<?php foreach($models as $model): ?>

wobei

den Namen der Widget-Klasse oder den Klassenpfad-Alias ​​angibt und die Anfangswerte der Eigenschaft entweder in Anführungszeichen gesetzte Zeichenfolgen oder PHP-Ausdrücke in geschweiften Klammern sein können. Beispiel:


<com:WidgetClass property1=value1 property2=value2 ...>
    // body content for the widget
</com:WidgetClass>

// a widget without body content
<com:WidgetClass property1=value1 property2=value2 .../>

WidgetClass würde übersetzt werden als


<com:CCaptcha captchaAction="captcha" showRefreshButton={false} />

Hinweis:
Der Wert für

wird als

anstelle von

angegeben, da letzteres eine Zeichenfolge anstelle eines booleschen Werts bedeutet.
<?php $this->widget('CCaptcha', array(
    'captchaAction'=>'captcha',
    'showRefreshButton'=>false)); ?>

Cache-Tags

Cache-Tags sind Abkürzungen für die Verwendung des Fragment-Caching. Die Syntax lautet wie folgt:showRefreshButton{false}"false"

wobei

ein Bezeichner sein sollte, der den zwischengespeicherten Inhalt eindeutig identifiziert, und die Eigenschafts-Wert-Paare zum Konfigurieren des Fragment-Cache verwendet werden, beispielsweise


<cache:fragmentID property1=value1 property2=value2 ...>
    // content being cached
</cache:fragmentID >

fragmentID würde übersetzt werden als


<cache:profile duration={3600}>
    // user profile information here
</cache:profile >

Clip-Tags

Clip-Tags sind wie Cache-Tags Verknüpfungen zum Aufrufen von CBaseController::beginClip und CBaseController::endClip in einer Ansicht. Die Syntax lautet wie folgt:

<?php if($this->beginCache('profile', array('duration'=>3600))): ?>
    // user profile information here
<?php $this->endCache(); endif; ?>

wobei

eine Kennung ist, die den Clip-Inhalt eindeutig identifiziert. Die Clip-Tags werden als


übersetzt

<clip:clipID>
    // content for this clip
</clip:clipID >

clipIDKommentar-Tags

Kommentar-Tags werden zum Schreiben von Ansichtskommentaren verwendet, die nur für Entwickler sichtbar sein sollten, wenn die Ansicht deaktiviert ist Die Syntax für Kommentar-Tags lautet wie folgt:

<?php $this->beginClip('clipID'); ?>
    // content for this clip
<?php $this->endClip(); ?>

2 🎜>

Ab Version 1.1.2 ist es möglich, die Verwendung einer alternativen Vorlagensyntax mit der normalen PHP-Syntax zu kombinieren. Dazu muss die Eigenschaft CViewRenderer::fileExtension des installierten View-Renderers mit a konfiguriert werden Wenn die Eigenschaft beispielsweise auf

festgelegt ist, wird jede Ansichtsdatei, die mit
endet, mit dem installierten Ansichtsrenderer gerendert, während alle anderen Ansichtsdateien, die mit

enden, gerendert werden Wird als normales PHP-Ansichtsskript behandelt.

Das Obige ist der offizielle Yii Framework-Leitfaden Serie 49 – Spezialthema: Verwendung von Nicht-Mainstream-Template-Syntax. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.org). php.cn)!
<!---
view comments that will be stripped off
--->

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn