Zend_Layout, utilisation avancéeZend_Layout permet d'être utilisé de manière plus pointu. Vous pouvez agir sur ces éléments :
Objets de vue personnalisésZend_Layout accepte des objets de vue implémentant Zend_View_Interface ou étendant Zend_View_Abstract pour le rendu du script de layout. Passez le en paramètre au constructeur ou à startMvc(), ou utilisez l'accesseur setView() :
Plugin de contrôleur frontal personnalisé
Lorsqu'utilisé avec les composants MVC, Zend_Layout
enregistre un plugin de contrôleur frontal qui se charge du rendu du layout juste avant
la fin de la boucle de distribution. Ceci convient à la majorité des cas, si cependant
vous avez besoin de construire votre propre plugin, passez son nom dans l'option
Votre plugin doit alors étendre Zend_Controller_Plugin_Abstract, et devrait accepter un objet Zend_Layout lors de sa construction. La classe par défaut du plugin est Zend_Layout_Controller_Plugin_Layout. Aide d'action personnaliséeSi les composants MVC sont utilisés, alors Zend_Layout enregistre une classe d'aide d'action dans le gestionnaire d'aides (helper broker). Par défaut, il s'agit de Zend_Layout_Controller_Action_Helper_Layout. Cette aide agit comme un proxy vers l'instance de Zend_Layout et permet d'y accéder dans vos actions.
Si vous voulez utiliser votre propre classe, celle-ci devra alors étendre
Zend_Controller_Action_Helper_Abstract. Passez le nom de la
classe dans l'option Résolution de chemin de script personnalisé (inflecteur)Zend_Layout utilise Zend_Filter_Inflector pour établir une chaine de filtre permettant la résolution du nom du layout, vers le fichier y correspondant. Par défaut, les règles "Word_CamelCaseToDash" suivie de "StringToLower" sont utilisées. Le suffixe "phtml" est ensuite ajouté :
Vous pouvez personnaliser l'inflecteur de 3 manières différentes : Modifier la cible et/ou le suffixe grâce à des accesseurs dans Zend_Layout ; Modifier les règles de l'inflecteur associé à Zend_Layout ; Ou encore créer votre propre inflecteur et le passer à Zend_Layout::setInflector(). Example #1 Utilisation des accesseurs pour modifier l'inflecteur L'inflecteur par défaut de Zend_Layout utilise des marqueurs statiques pour la cible et le suffixe. 2 accesseurs vous sont donc proposés :
Example #2 Modification directe de l'inflecteur de Zend_Layout Les inflecteurs fonctionnent avec un cible et plusieurs règles. La cible par défaut utilisée pour Zend_Layout est ":script.:suffix" ; ":script" représente le nom du script de layout, et ":suffix" est une règle statique. Imaginons que vous vouliez que le suffixe du script de layout soit "html", et que vous vouliez séparer les mots en CasseMélangée ou en notationCamel avec des tirets-bats au lieu des tirets. De plus, vous voulez chercher vos scripts dans un sous-dossier "layouts" :
Example #3 Inflecteur personnalisé Dans la plupart des cas, modifier l'inflecteur sera suffisant. Vous pouvez cependant créer votre propre inflecteur, pour l'utiliser à différents endroits par exemple, et le passer à Zend_Layout:
|