IntroductionZend_View est une classe qui permet de travailler avec la partie "Vue" du motif de conception Modèle-Vue-Contrôleur. Elle existe pour aider à garder la vue séparée du modèle et des scripts du contrôleur. Elle fournie un système d'aide, de filtres d'affichage, et d'échappement de variables. Zend_View est un système de template agnostique ; vous pouvez utiliser PHP comme langage de template, ou créer des instances d'autres systèmes de templates, et les manipuler à travers les scripts de vue. L'utilisation de Zend_View se déroule en deux étapes principales : 1. Votre script de contrôleur crée une instance de Zend_View et assigne des variables à cette instance. 2. Le contrôleur dit à Zend_View d'effectuer le rendu d'une vue particulière, et de ce fait va donner le contrôle au script de vue, qui va générer l'affichage. Script du ContrôleurComme exemple simple, imaginons que votre contrôleur aie une liste de données sur des livres qu'il veut afficher en passant par une vue. Le contrôleur pourrait alors ressembler à ceci :
Script de vueMaintenant, nous avons besoin d'associer le script de vue "booklist.php". C'est un script PHP comme les autres, à une exception près : il s'exécute dans la portée de l'instance Zend_View, ce qui veut dire que les référence à $this pointent vers les attributs et les méthodes de Zend_View. (Les variables assignées à l'instance par le contrôleur sont des propriétés publiques de l'instance Zend_View). Ainsi un script de vue de base pourrait ressembler à ceci :
Notez l'utilisation de la méthode OptionsZend_View possède plusieurs options qui peuvent être réglées pour changer le comportement de vos scripts de vues.
Balises courtes dans les scripts de vueDans nos exemples et notre documentation, nous utilisons les balises longues PHP : <?php. De plus, nous utilisons parfois » la syntaxe alternative des structures de contrôle. Ce sont des éléments pratiques à utiliser lors de la rédaction de vos scripts de vue, car elles rendent les constructions plus laconiques, maintiennent les instructions sur des lignes uniques et éliminent la chasse aux accolades à l'intérieur de l'HTML. Dans les versions précédentes, nous recommandions souvent l'utilisation des balises courtes (<? et <?=), car elles rendent les scripts de vues moins verbeux. Cependant, la valeur par défaut du fichier php.ini pour le réglage short_open_tag est désactivé par défaut en production ou en hébergement mutualisé ; rendant ainsi vos scripts peu portables. De plus, si vous modélisez du XML dans vos scripts, la présence des balises courtes entrainera l'échec de la validation. Enfin, si vous utilisez les balises courtes et que short_open_tag est désactivé, le script retournera soit des erreurs, soit votre code PHP à l'utilisateur.
Ceci étant dit, de nombreux développeurs préfère utiliser la forme complète pour
des questions de validation ou de portabilité. Par exemple, De plus, si vous utilisez les balises courtes avec un réglage du paramètre à "off", alors les scripts de vue vont soit entraîner des erreurs, soit simplement afficher le code à l'utilisateur. Si malgré ces avertissements, vous souhaitez utiliser les balises courtes mais qu'elles sont désactivées, vous avez deux options :
Warning
Les enveloppes de flux de vue dégradent les performancesL'utilisation d'enveloppe de flux dégradera les performances de votre application, bien que les tests de performance réels sont indisponibles pour quantifier le niveau de dégradation. Nous recommandons donc soit d'activer les balises courtes, soit de convertir vos scripts pour utiliser la forme longue, ou d'avoir une bonne stratégie de mise en cache partielle ou totale du contenu de vos pages. Accesseurs utilesTypiquement, vous ne devriez seulement avoir besoin d'appeler les méthodes assign(), render(), ou une des méthodes pour le paramétrage/l'ajout de chemins de filtre, d'aide et de script de vues. Cependant, si vous souhaitez étendre Zend_View vous-même, ou avez besoin d'accéder à quelques unes de ces méthodes internes, un certain nombre d'accesseurs existent :
|