Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 04-09-2007 12:21:15

Stouty12
Nouveau membre
Lieu: Millau
Date d'inscription: 04-09-2007
Messages: 5

[Résolu][Zend_View][1.0.0]définir un helper path pour toute les vues

J'ai créé des view_helper personnalisés qui sont rangés dans un dossier  "application/views/helpers".
J'arrive a les retrouver en appelant " $this->view->setHelperPath('./application/views/helpers', 'My_View_Helper_');"
dans chaque  controller.

Y a-t-il un moyen de definir a un seul endroit  le HelperPath  pour toutes les vues?

Merci

Dernière modification par Stouty12 (04-09-2007 16:27:15)

Hors ligne

 

#2 04-09-2007 13:20:32

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: [Résolu][Zend_View][1.0.0]définir un helper path pour toute les vues

Oui comme toujours il suffit d'utiliser la dérivation

tu crées une classe Action qui dérive de Zend_Controller_Action
dans la methode init tu mets tous ce qui est commun à tes contrôleurs
et tu fait dériver tes contrôleurs de ta classe Action


AJYT

Hors ligne

 

#3 04-09-2007 13:59:45

Stouty12
Nouveau membre
Lieu: Millau
Date d'inscription: 04-09-2007
Messages: 5

Re: [Résolu][Zend_View][1.0.0]définir un helper path pour toute les vues

sekaijin,

Merci pour ta réponse, j'avais effectivement pensé a quelque chose de semblable. Mais j'aimerais ne pas avoir a étendre une classe de base du framework pour quelquechose d'aussi trivial.
Toutes les vues "connaissent" par defaut le chemin des helpers de zend (Zend/view/helper), j'aurais aime un mecanisme qui me permettent simplement d'ajouter le path de mes helpers a toutes les vues aussi facilement.
Peut être n'est ce tout simplement pas possible du fait que dans la classe "Zend_View_Abstract" , $_Path n'as pas été déclarée static ?

Hors ligne

 

#4 04-09-2007 14:08:09

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: [Résolu][Zend_View][1.0.0]définir un helper path pour toute les vues

dans Zend_View_Abstract, tu as une fonction addHelperPath :

Code:

/**
     * Adds to the stack of helper paths in LIFO order.
     *
     * @param string|array The directory (-ies) to add.
     * @param string $classPrefix Class prefix to use with classes in this
     * directory; defaults to Zend_View_Helper
     * @return Zend_View_Abstract
     */
    public function addHelperPath($path, $classPrefix = 'Zend_View_Helper_')

Je n'ai pas regardé dans le détail, mais ça pourrait résoudre ton problème.

A+, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#5 04-09-2007 14:35:44

Stouty12
Nouveau membre
Lieu: Millau
Date d'inscription: 04-09-2007
Messages: 5

Re: [Résolu][Zend_View][1.0.0]définir un helper path pour toute les vues

Merci Philippe,

La fonction addHelperPath() ajoute un path uniquement a l'instance de la vue en question, mais les autres vues ne sont pas concernées. (J'ai testé pour être sur smile  ).
Il me faudrait un truc du genre static addHelperPath().

A+

Stout

Hors ligne

 

#6 04-09-2007 14:50:12

Grummfy
Membre
Lieu: Belgique
Date d'inscription: 01-08-2007
Messages: 232
Site web

Re: [Résolu][Zend_View][1.0.0]définir un helper path pour toute les vues

il n'y en a pas....

perso moi je dérive le controler action, et je le défini la dedans, ensuite mes controller étende tous cette class


Engagez-moi! : Cherche job en Belgique autour de Namur (1 heure de route autour)
blog - ZF Planet

Hors ligne

 

#7 04-09-2007 15:09:54

Stouty12
Nouveau membre
Lieu: Millau
Date d'inscription: 04-09-2007
Messages: 5

Re: [Résolu][Zend_View][1.0.0]définir un helper path pour toute les vues

Grummfy a écrit:

il n'y en a pas....

C'est bien ce que je pensais...

Merci à tous pour vos réponses rapides

Stout

Hors ligne

 

#8 04-09-2007 15:19:16

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: [Résolu][Zend_View][1.0.0]définir un helper path pour toute les vues

Alors dans ce cas là il te faut en passer par le démarrage du framework

dans ton index.php
tu dois avoir quelque chose comme

Code:

      $controller = self::getInstance($engine);
      $controller->throwExceptions(true);
      $controller->setControllerDirectory($controllerDirectory);
      $controller->dispatch();

à ce moment là il te fau instancier ton objet view et récupérer le ViewRenderer. là tu ajoutes tes options à ta vue et tu affecte ta vue au view renderer

Code:

$view = new Zend_View();
$viewRenderer= Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
$viewRenderer->setView($view)->setViewSuffix('ext');

tu peux aussi dériver la classe view pour en avoir une qui corespond à tes besoin et l'instancier et l'affecté à la place de Zend_View c'est ce que je fais pour les moteurs de template.

pour ce qui est de la classe Action personnellement j'en mets toujours une. ainsi la moindre évolution commune à tous mes contrôleurs est facile à réaliser.

il arrive souvent que cette classe ne fasse absolument rien elle est complètement inutile. mais lorsque l'application est en production et qu'on me demande une évolution cela me facilite le travail. je préfère donc la mettre au cas où. cela implique pour l'application le chargement d'un fichier de plus lors du premier démarrage

A+JYT

Hors ligne

 

#9 04-09-2007 15:41:26

Stouty12
Nouveau membre
Lieu: Millau
Date d'inscription: 04-09-2007
Messages: 5

Re: [Résolu][Zend_View][1.0.0]définir un helper path pour toute les vues

sekaijin a écrit:

Code:

  $viewRenderer->setView($view)->setViewSuffix('ext');

Merci, j'ai ajouté ca dans index.php

Code:

$view = new Zend_View();
$view->addHelperPath('./application/views/helpers', 'My_View_Helper_');
$viewRenderer= Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
$viewRenderer->setView($view);

et ca fait exactemetn ce que je voulais. Mais si je rajoute "setViewSuffix('ext');" ca ne marche plus.
A quoi sert de rajouter ce suffixe ?

edit : concernant "setViewSuffix('ext')", j'ai compris que j'en avais pas besoin utlisant l'extension par defaut "phtml".

Stout

Dernière modification par Stouty12 (04-09-2007 16:25:03)

Hors ligne

 

#10 04-09-2007 21:05:47

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: [Résolu][Zend_View][1.0.0]définir un helper path pour toute les vues

le suffix était là comme exemple de propriété que tu peux modifier à ce moment là
comme pour les addStriptPath et autres helpers

A+JYT

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages