Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 19-11-2008 17:29:09

nkos
Membre
Date d'inscription: 19-11-2008
Messages: 10

[Zend_View][1.6]Helpers personnalisés

Bonjour,

A propos des helpers personnalisés:
si je configure plusieurs chemin d'Helpers en faisant de la sorte

Code:

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

- si j'ai 2  helpers nommé par exemple Toto.php avec un contenu différent :
le nom classe  de l'un sera Zend_View_Helper_Toto {
et l'autre sera Mes_Helpers_Toto {

Ensuite dans la vue où j'aimerais les appeler je fais

Code:

$this->toto();

Mais comment puis je faire pour appeler l'un ou l'autre ??

Merci beaucoup

Dernière modification par nkos (19-11-2008 17:30:15)

Hors ligne

 

#2 19-11-2008 17:40:02

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

Re: [Zend_View][1.6]Helpers personnalisés

Hello,

En faisant :

Code:

$tata = $this->toto();

Tu prendras le dernier ajouté donc Mes_Helpers_Toto.

Si tu veux forcer Zend_View_Helper_Toto, tu dois faire :

Code:

$tata = new Zend_View_Helper_Toto();

A+


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

Hors ligne

 

#3 19-11-2008 17:50:35

nkos
Membre
Date d'inscription: 19-11-2008
Messages: 10

Re: [Zend_View][1.6]Helpers personnalisés

merci pour la réponse
mais le problème est qu'il ne trouve pas la classe Zend_View_Helper_Toto() !
Je comprends pas pourquoi car le chemin est bien référencé dans le bootstrap et que les noms des classes sont bien nommées !!

Hors ligne

 

#4 19-11-2008 18:31:52

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

Re: [Zend_View][1.6]Helpers personnalisés

Hello,

Elle est où Zend_View_Helper_Toto ?

A+


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

Hors ligne

 

#5 19-11-2008 18:58:25

nkos
Membre
Date d'inscription: 19-11-2008
Messages: 10

Re: [Zend_View][1.6]Helpers personnalisés

Dans le dossier application/views/helpers de mon application

Code:

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

merci

Dernière modification par nkos (19-11-2008 18:59:29)

Hors ligne

 

#6 19-11-2008 19:06:39

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

Re: [Zend_View][1.6]Helpers personnalisés

Hello,

Je m'en doutais un peu wink . Le préfixe Zend_View_Helper est celui du ZF, tu ne peux pas l'utiliser hors du dossier Zend/View/Helper. Tu dois créer un préfixe pour ton dossier '../application/views/helpers'.

Par exemple :

Code:

$view->addHelperPath('../application/views/helpers', 'Helpers');
$view->addHelperPath('../application/views/helpers/meshelpers','Mes_Helpers');

// tu appelles ensuite
$tata = $this->toto();
// ou
$tata = new Helpers_Toto();

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 20-11-2008 10:11:28

nkos
Membre
Date d'inscription: 19-11-2008
Messages: 10

Re: [Zend_View][1.6]Helpers personnalisés

En mettant

Code:

$tata = new Helpers_Toto();

il va chercher la classe au chemin Helpers puis Toto et n'arrive pas à le trouver, j'ai ces messages d'erreurs

Code:

Warning: Zend_Loader::include_once(Helpers\Toto.php) [zend-loader.include-once]: failed to open stream: No such file or directory ....
Fatal error: Class 'Helpers_Toolbar' not found ...

En initialisant mes chemins d'Helper comme ça

Code:

// Path vers les Helpers
$view = new Zend_View();
$view->addHelperPath('../application/views/helpers', 'Helpers');
$view->addHelperPath('../application/views/helpers/meshelpers','Mes_Helpers');
$view->doctype('XHTML1_TRANSITIONAL');
Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer')->setView($view);

Je "dois" renommer mes classes toto(), si j'ai bien compris, de la sorte :

Code:

class Helpers_Toto { 
   public function toto() {
      return $moncode;
   }
}

et

class Mes_Helpers_Toto { 
   public function toto() {
      return $moncode;
   }
}

En appelant mon helper par $this->toto(); dans ma vue, il m'appellera tjrs la classe Mes_Helpers_Toto (je ne sais pas pourquoi tjrs celui-ci en premier parceque même en inversant l'ordre d'initialisation des chemins de mes helpers, il continuera d'appeler celui ci...)

Cela signifierait qu'il n'est pas possible d'avoir deux helpers du même nom ? :'(
Il servent à quoi alors les préfixes ?

Merci encore de votre aide !

Dernière modification par nkos (20-11-2008 10:13:00)

Hors ligne

 

#8 20-11-2008 11:03:49

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: [Zend_View][1.6]Helpers personnalisés

C'est un problème pour tous les langages, tu ne peux pas avoir 2 fonctions avec le même nom smile

$this->faituntruc();
$this->fatiuntruc();

Comment savoir laquel fait quoi ??

Si tu as deux fonctions de même nom, alors, c'est que tu dois trouvé une autre logique pour nommer tes fonctions.


----
Gruiiik !

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