Maison > développement back-end > tutoriel php > Yii Framework Official Guide Series 49 - Sujet spécial : Utilisation de la syntaxe de modèle non traditionnelle

Yii Framework Official Guide Series 49 - Sujet spécial : Utilisation de la syntaxe de modèle non traditionnelle

黄舟
Libérer: 2023-03-05 19:08:01
original
1371 Les gens l'ont consulté



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.

1. Pour utiliser CPradoViewRenderer, il suffit de configurer l'application comme suit :CPradoViewRenderer


return array(
    'components'=>array(
        ......,
        'viewRenderer'=>array(
            'class'=>'CPradoViewRenderer',
        ),
    ),
);
Copier après la connexion
Par défaut, CPradoViewRenderer compilera les fichiers de vue source et enregistrera les fichiers PHP résultants dans le répertoire d'exécution. Ce n'est que lorsque les fichiers de vue source seront modifiés que les fichiers PHP seront régénérés. Par conséquent, l'utilisation de CPradoViewRenderer entraîne une très faible dégradation des performances. .

Dans ce qui suit, nous présentons les balises de modèle prises en charge par CPradoViewRenderer.

Balises courtes PHP

Les 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
en

Par exemple,

<%= expression %> <?php echo expression ?><% statement %><?php statement ?>

est traduit en


<%= CHtml::textField($name,&#39;value&#39;); %>
<% foreach($models as $model): %>
Copier après la connexion

balise de composant


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,&#39;value&#39;); ?>
<?php foreach($models as $model): ?>
Copier après la connexion

<.>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 .../>
Copier après la connexion

WidgetClass serait traduit par


<com:CCaptcha captchaAction="captcha" showRefreshButton={false} />
Copier après la connexion

Remarque :
La valeur de

est spécifiée comme

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)); ?>
Copier après la connexion

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"

.

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 >
Copier après la connexion

serait traduit parfragmentID


<cache:profile duration={3600}>
    // user profile information here
</cache:profile >
Copier après la connexion

Balises de clip

Comme 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; ?>
Copier après la connexion

est un identifiant qui identifie de manière unique le contenu du clip. Les balises du clip seront traduites par

.

<clip:clipID>
    // content for this clip
</clip:clipID >
Copier après la connexion

Balises de commentaire

clipIDLes 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(); ?>
Copier après la connexion

2 Formats de modèles mixtes<.>

À partir de la version 1.1.2, il est possible de mélanger l'utilisation d'une syntaxe de modèle alternative avec la syntaxe PHP normale. Pour ce faire, la propriété CViewRenderer::fileExtension du moteur de rendu de vue installé doit être configurée avec un. valeur autre que

. 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
--->
Copier après la connexion

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal