Le framework Yii permet aux développeurs d'utiliser leur syntaxe de modèle préférée (telle que Prado, Smarty) pour écrire la vue d'un contrôleur ou d'un widget. peut être effectué en écrivant et en installant un composant d'application viewRenderer pour y parvenir. Ce moteur de rendu de vue intercepte l'appel à CBaseController::renderFile, compile le fichier de vue via une syntaxe de modèle personnalisée, puis restitue le résultat final de la compilation.
Info : Il est recommandé d'utiliser la syntaxe de modèle personnalisée uniquement lors de l'écriture de vues rarement réutilisées. Sinon, la réutilisation des vues dans l'application forcera l'utilisation de la même syntaxe de modèle.
Ensuite, nous présenterons comment utiliser CPradoViewRenderer, un moteur de rendu de vue similaire au framework Prado qui permet aux développeurs d'utiliser une syntaxe de modèle personnalisée. Si vous souhaitez développer votre propre moteur de rendu de vue, CPradoViewRenderer est un bon guide.
CPradoViewRenderer
return array( 'components'=>array( ......, 'viewRenderer'=>array( 'class'=>'CPradoViewRenderer', ), ), );
Dans ce qui suit, nous présentons les balises de modèle prises en charge par CPradoViewRenderer.
Balises courtes PHPenLes balises PHP courtes sont des raccourcis pour écrire des expressions PHP et déclarations dans une vue. La balise d'expression est traduite en
; tandis que la balise d'instruction
Par exemple,
<%= expression %>
<?php echo expression ?>
<% statement %>
<?php statement ?>
<%= CHtml::textField($name,'value'); %> <% foreach($models as $model): %>
Les balises de composant sont utilisées pour insérer un widget dans une vue. Elles utilisent la syntaxe suivante :
<?php echo CHtml::textField($name,'value'); ?> <?php foreach($models as $model): ?>
<.>où
spécifie le nom de la classe du widget ou l'alias du chemin de classe, et les valeurs initiales de la propriété peuvent être soit des chaînes entre guillemets, soit des expressions PHP entourées d'accolades. Par exemple,<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
serait traduit par
<com:CCaptcha captchaAction="captcha" showRefreshButton={false} />
Remarque :
La valeur de
au lieu de
car cette dernière signifie une chaîne au lieu d'un booléen.<?php $this->widget('CCaptcha', array( 'captchaAction'=>'captcha', 'showRefreshButton'=>false)); ?>
Balises de cache
Les balises de cache sont des raccourcis pour utiliser la mise en cache de fragments. Sa syntaxe est la suivante,
showRefreshButton
{false}
"false"
où
doit être un identifiant qui identifie de manière unique le contenu mis en cache, et les paires propriété-valeur sont utilisées pour configurer le cache de fragments. Par exemple,<cache:fragmentID property1=value1 property2=value2 ...> // content being cached </cache:fragmentID >
serait traduit parfragmentID
<cache:profile duration={3600}> // user profile information here </cache:profile >
Balises de clipComme les balises de cache, les balises de clip sont des raccourcis pour appeler CBaseController::beginClip et CBaseController::endClip dans une vue,
<?php if($this->beginCache('profile', array('duration'=>3600))): ?> // user profile information here <?php $this->endCache(); endif; ?>
.
<clip:clipID> // content for this clip </clip:clipID >
clipID
Les balises de commentaire sont utilisées pour rédiger des commentaires de vue qui ne doivent être visibles par les développeurs que lorsque la vue est désactivée. affiché pour les utilisateurs finaux. La syntaxe des balises de commentaire est la suivante :
<?php $this->beginClip('clipID'); ?> // content for this clip <?php $this->endClip(); ?>
. Par exemple, si la propriété est définie sur
, alors tout fichier de vue se terminant par sera rendu à l'aide du moteur de rendu de vue installé, tandis que tous les autres fichiers de vue se terminant par
le seront. traité comme un script de vue PHP normal.
Ce qui précède est la série 49 du guide officiel du Yii Framework - Sujet spécial : Utilisation de la syntaxe de modèle non grand public Pour plus de contenu connexe, veuillez prêter attention au site Web PHP chinois (www. php.cn) !
<!--- view comments that will be stripped off --->