Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
J'aimerais savoir comment implémenter élégamment de nouveaux chemins vers les aides de vue.
En effet je ne me suis pas encore trop renseigné sur la classe Zend_Application et donc ne vois pas trop le fonctionnement.
Le but étant de ne pas polluer mes vue ou mes controllers.
Merci
Hors ligne
$view->addHelperPath('/MonEspaceDeNom/View/Helper', 'MonEspaceDeNom_View_Helper') et tu utilises le fichier de cache des plugins (http://framework.zend.com/manual/fr/per … uginloader) pour réduire le nombre d'appel utilisé
Je vois pas trop ce que ça à voir avec Zend_Application. Les aides de vue, ce sont des classes que tu implémentes dans ton propre espace de nom et le chargeur de plugin se charge de les charger à la demande. Une aide de vue n'est chargée que lorsque tu l'appelles. Tu peux donc en créer autant que tu veux sans que ça ne pose de problème d'occupation de mémoire.
Et une aide de vue, c'est comme son nom l'indique, à utiliser dans une vue. Ca n'a donc rien à voir avec tes contrôleurs.
Dernière modification par mdelanno (27-05-2009 22:52:19)
Hors ligne
J'ai dessuite surcharger Zend_Application_Resource_View, ainsi j'ai pu rajouter tout un tas de truc
Voici un snippet
class Rx_Application_Resource_View extends Zend_Application_Resource_View { /** * Defined by Zend_Application_Resource_Resource * * @return Zend_View */ public function init() { parent::init(); // Encoding if (isset($this->_options['encoding'])) { $this->_view->setEncoding($this->_options['encoding']); } //View Doctype for XHTML if (isset($this->_options['doctype']) && is_string($this->_options['doctype'])) { $this->_view->doctype($this->_options['doctype']); $contentType = 'text/html'; if (isset($this->_options['encoding'])) { $contentType .= '; charset='.$this->_options['encoding']; } $this->_view->headMeta()->appendHttpEquiv('Content-Type', $contentType); // == header('Content-Type: '.$contentType); } // LES AIDES DE VUES ! if (isset($this->_options['helperPaths'])) { foreach($this->_options['helperPaths'] as $prefix => $path) { $this->_view->addHelperPath($path,$prefix); } } //nice shortcut $this->_view->assign('requestUri', $_SERVER['REQUEST_URI']); return $this->_view; } }
Le bout de mon application.ini
; pour surcharger les ressources automatiquement pluginPaths.Rx_Application_Resource = "Rx/Application/Resource/" resources.view.encoding = UTF-8 resources.view.doctype = XHTML1_STRICT resources.view.helperPaths.Rx_View_Helper = APPLICATION_PATH "/../librairies/Rx/View/Helper" resources.view.helperPaths.My_View_Helper = APPLICATION_PATH "/somepath/"
Hors ligne
il set à quoi ton "nice shortcut", Mr.MoOx ? (si c'est pas indiscret)
Dernière modification par ubini (28-05-2009 14:02:28)
Hors ligne
Son nice shortcut lui permet d'assigner à la vue la variable $_SERVER['REQUEST_URI'] afin de faire l'appel suivant: $this->requestUri dans la vue.
C'est un raccourci ^^.
En tout cas merci pour ces implémentation des ressources, c'est exactement ce que je recherchais.
Par contre mdelanno, en peu hors sujet... mais merci quand même ^^
++
Hors ligne
Pages: 1