2 votes

Layout initialisation peculiarity in Zend Framework

J'ai remarqué quelque chose d'intéressant à propos du bootstrap de Zend Framework. J'ai créé un nouveau projet et ensuite j'ai utilisé

zf enable layout

pour activer le moteur de mise en page. Ça a marché directement, youpi !

Mais ensuite j'ai essayé de créer une fonction appelée _initLayout dans le bootstrap pour définir certaines options. Curieusement, cela semble désactiver à nouveau la mise en page, même si le corps de la fonction est en fait vide. Aucune erreur n'est générée, mais le script de mise en page n'est plus utilisé (à l'exception du cas où je redéfinis les options et appelle manuellement Zend_Layout::startMvc()).

Renommer la fonction avec n'importe quel autre nom, comme _initFoo, fait fonctionner à nouveau la mise en page.

Donc, ma question est : _est-ce que c'est un nom de fonction qui est reconnu d'une certaine manière par Zend Framework et des actions supplémentaires lui sont appliquées, comme l'annulation de la configuration de la mise en page dans application.ini ? Y a-t-il d'autres cas où je devrais éviter certains noms de fonctions _init* dans le bootstrap ?_

3voto

Tim Fountain Points 21921

Le but principal de Bootstrap est de configurer les ressources utilisées par l'application. Celles-ci peuvent être configurées soit par des lignes dans le fichier de configuration (resources.resourcename.foo) soit par des méthodes dans la classe de bootstrap (_initResourceName()). Je suppose que zf enable layout a ajouté quelques lignes resources.layout.* à l'application.ini. En ajoutant une méthode _initLayout au bootstrap, ZF l'utilisera pour configurer la ressource de layout au lieu des lignes de configuration.

Y a-t-il d'autres cas où je devrais éviter certains noms de fonctions _init* dans le bootstrap?

Les plugins de ressource sont détaillés dans le manuel : http://framework.zend.com/manual/en/zend.application.available-resources.html, _init() remplacera toujours les lignes correspondantes dans la configuration.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X