Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 26-10-2008 12:48:23

Cidrolin
Membre
Date d'inscription: 21-08-2008
Messages: 74

[ZEND 1.6] Problème avec les helpers

Bonjour,

je rencontre actuellement un problème avec les helpers que je n'arrive pas à saisir.

Le contexte :

J'ai mes helpers personnalisés dans application/view/helpers/

Je les déclare dans le bootstrap.

Jusque là tout va bien.

J'y fais appel dans mes scripts de view avec la syntaxe suivante : $this->view->monHelper($param1, $param2, etc.)

Mais si je les utilise de cette façon :
$inst  = new Zend_View_Helper_MonHelper();

L'autoload de Zend me renvoie une erreur. Warning: Zend_Loader::include_once(Zend\View\Helper\MonHelper.php)

Et comme j'ai besoin de certains helpers dans d'autres helpers, dans ces derniers je les déclare de cette façon. Mais la plupart du temps, Zend me renvoie une erreur, car il va les chercher uniquement dans Zend/View/helper/ Il n'y en a qu'un qui marche, c'est le fameux BaseUrl qui est aussi dans application/views/helpers/.

Dans mon Bootstrap, j'ai ceci :

$view->addHelperPath('./application/views/helpers');

Quelqu'un a-t-il une idée ?

Merci,

Hors ligne

 

#2 26-10-2008 13:20:54

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: [ZEND 1.6] Problème avec les helpers

Hello,

Les helpers commençant par Zend sont les officiels. Normalement tu devrais faire :

Code:

$view->addHelperPath('./application/views/helpers','Mes_Aides');
// puis
$inst  = new Mes_Aides_MonHelper();
// ou
$this->view->monHelper($param1, $param2, etc.);

Mais je pense que ce n'est pas ton problème smile. En fait, je pense que l'instance $view que tu paramètres dans ton bootstrap n'est pas celle utilisée ensuite dans $this->view. Si tu utilises le viewRenderer, tu dois affecter ta $view dans ton bootstrap :

Code:

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

A+

Dernière modification par mikaelkael (26-10-2008 13:21:21)


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

#3 26-10-2008 13:40:23

Julien
Membre
Date d'inscription: 16-03-2007
Messages: 501

Re: [ZEND 1.6] Problème avec les helpers

Tu peux pas faire un "new Ma_Classe_Daide_De_Vue()", car Zend_Loader n'est pas au courant de tes scriptsPaths.
Par contre ta vue peut (si t'as déclaré tes chemins avec addScriptPath() ) te pondre un helper (getHelper()), car elle utilise Zend_Loader_PluginLoader pour trouver la classe.

Attention aussi aux instances de vues comme l'a dit Mickael plus haut.

Hors ligne

 

#4 26-10-2008 14:23:21

Cidrolin
Membre
Date d'inscription: 21-08-2008
Messages: 74

Re: [ZEND 1.6] Problème avec les helpers

Merci pour vos réponses,

j'ai repris tes lignes pour les adapter à mon code. Renommer mes helpers en Custom_Helper. Bon ça marche toujours quand je fais $this->view->pouet. Cela dit, je ne comprends pas concrètement comment faire fonctionner un helper dans un autre helper. Je veux bien rajouter addScriptPath dans le init() du controller, etc. mais cela ne change rien.

Merci

Hors ligne

 

#5 26-10-2008 14:40:11

Cidrolin
Membre
Date d'inscription: 21-08-2008
Messages: 74

Re: [ZEND 1.6] Problème avec les helpers

Et aussi, je ne comprends pas pourquo quand je fais "new Custom_Helper_BaseUrl();" dans un autre helper, celui-ci marche très bien et pas les autres. Alors que la syntaxe est identique.

Hors ligne

 

#6 26-10-2008 14:41:45

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: [ZEND 1.6] Problème avec les helpers

Hello,

Pour appeler un helper dans un autre helper :

Code:

class Monhelper extends Zend_View_Helper_Abstract
{
    public function monhelper()
    {
        $autrehelper = $this->view->url(array('action'=>'toto')); // par exemple
    }
}

A+


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

#7 26-10-2008 15:41:33

Cidrolin
Membre
Date d'inscription: 21-08-2008
Messages: 74

Re: [ZEND 1.6] Problème avec les helpers

Salut,

merci, effectivement j'oubliais de le les faire hériter de Zend_View_Helper_Abstract

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