Scripts de vueUne fois que le contrôleur a assigné les variables et appelé render(), Zend_View inclue le script de vue requis et l'exécute "à l'intérieur" de la portée de l'instance Zend_View. Donc dans vos scripts de vue, les références à $this pointent en fait sur l'instance Zend_View elle-même.
Les variables assignées à la vue depuis le contrôleur lui sont référées comme des
propriétés de l'instance. Par exemple, si le contrôleur a assigné une variable
"quelquechose", vous vous référerez à cette variable par Pour rappel, voici l'exemple de script issu de l'introduction de ce chapitre sur Zend_View.
Échapper la sortieUne des tâches les plus importantes à effectuer dans un script de vue est de s'assurer que la sortie est correctement échappée ; de plus ceci permet d'éviter les attaques de type cross-site scripting (XSS). A moins que vous n'utilisiez une fonction, une méthode, ou une aide qui gère l'échappement, vous devriez toujours échapper les variables lors de l'affichage. Zend_View a une méthode appelée escape() qui se charge de l'échappement. Par défaut, la méthode escape() utilise la fonction PHP htmlspecialchar() pour l'échappement. Cependant, en fonction de votre environnement, vous souhaitez peut-être un échappement différent. Utilisez la méthode setEscape() au niveau du contrôleur pour dire à Zend_View quelle méthode de rappel ("callback") elle doit utiliser.
La fonction ou méthode de rappel doit prendre la valeur à échapper dans le premier paramètre, et tous les autres paramètres devraient être optionnels. Utiliser des systèmes de gabarit (template) alternatifsBien que PHP lui-même un moteur de gabarit puissant, beaucoup de développeurs pensent que c'est beaucoup trop puissant ou complexe pour les graphistes/intégrateurs et veulent utiliser un moteur de template alternatif. Zend_View fournit deux mécanismes pour faire cela, le premier à travers les scripts de vues, le second en implémentant Zend_View_Interface. Système de gabarit utilisant les scripts de vuesUn script de vue peut être utilisé pour instancier et manipuler un objet de gabarit séparé, comme un gabarit de type PHPLIB. Le script de vue pour ce type d'activité pourrait ressembler à ceci :
Et ceci pourrait être les fichiers de gabarits correspondants :
Système de gabarit utilisant Zend_View_InterfaceCertains peuvent trouver plus facile de simplement fournir un moteur de gabarit compatible avec Zend_View. Zend_View_Interface définit l'interface de compatibilité minimale nécessaire :
En utilisant cette interface, il devient relativement facile d'encapsuler un moteur de gabarit tiers comme une classe compatible Zend_View. Comme par exemple, le code suivant est une encapsulation potentielle de Smarty :
Dans cet exemple, vous instanciez la classe Zend_View_Smarty au lieu de Zend_View, et vous l'utilisez de la même façon :
|