|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |||||
|
Membre du Club
![]() Développeur Web Inscription : décembre 2005 Messages : 110 ![]() |
Bonjour !
Je suis en train de travailler sur une vue, et j'aurais besoin d'un helper parce que j'ai du code html récurrent dans mes pages et qu'il serait beaucoup mieux pour la lisibilité que ce code soit renvoyé par un helper. J'ai suivi la documentation Zend. J'ai donc : - crée un fichier 'NomDeMonHelper.php" - dans lequel j'ai défini une classe "Helper_NomDeMonHelper" - dans laquelle j'ai défini une méthode publique "nomDeMonHelper" Voilà ce fichier : Code GetWidget.php :
Dans mon IndexController, fonction init(), j'ai écrit : Code :
A l'exécution, j'ai l'erreur suivante : Citation:
D'après vous d'où peut venir le problème ? Si ça se trouve il saute aux yeux, mais je commence à loucher sur mon code ![]() Merci d'avance |
|||||
|
|
00
|
|
|
#2 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2006 Messages : 17 ![]() |
Bonjour,
le nom de la méthode est ok. essaie avec un underscore, je pense que ca ira mieux Code :
|
||
|
|
00
|
|
|
#3 | |||
|
Membre du Club
![]() Développeur Web Inscription : décembre 2005 Messages : 110 ![]() |
Citation:
Je viens d'essayer quand même, ça ne fonctionne pas mieux. Même erreur. Merci pour ta réponse. |
|||
|
|
00
|
|
|
#4 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2006 Messages : 17 ![]() |
mon code qui marche :
Dans le bootstrap: Code :
Verifie bien ton chemin. Sinon regarde les chemins des helpers stockées dans ta vue |
||
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() Développeur Web Inscription : décembre 2005 Messages : 110 ![]() |
Ca ne fonctionne pas non plus avec le require_once.
J'avais déjà fais appel à la méthode getHelperPaths() pour vérifier, avant de poster ma question sur le forum Je ne vois pas ce que ça peut être... D'autres suggestions ? |
|
|
00
|
|
|
#6 |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2006 Messages : 17 ![]() |
hmm mystère...
quelle est ta version du framework ? fais voir ton var_dump() de view qd même s'il y a pas quelque chose louche. |
|
|
00
|
|
|
#7 | |
|
Membre du Club
![]() Développeur Web Inscription : décembre 2005 Messages : 110 ![]() |
Citation:
Code :
array(2) { [0]=> array(2) { ["prefix"]=> string(7) "Helper_" ["dir"]=> string(54) "http:\\localhost\...\application\views\helpers\" } [1]=> array(2) { ["prefix"]=> string(17) "Zend_View_Helper_" ["dir"]=> string(48) "C:\wamp\www\...\library\Zend\View\Helper\" } } |
|
|
|
00
|
|
|
#8 |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2006 Messages : 17 ![]() |
C'est normal,
tu ne dois pas passer une url mais le chemin complet vers ton repertoire, Exemple : windows : C:\wamp\path\application\helpers\ linux : /home/name/application/helpers/ ca doit marcher sans problème après ce changement. Ps: De même que dans ROOT_URL tu as stocké l'url racine, tu peux stocker dans ROOT_DIR le chemin vers ton application |
|
|
00
|
|
|
#9 | ||
|
Membre du Club
![]() Développeur Web Inscription : décembre 2005 Messages : 110 ![]() |
Citation:
J'y ai cru mais ça ne fonctionne pas non plus Citation:
Code :
$view->addHelperPath(APP_DIR.'application/views/helpers', 'Helper'); J'ai exactement la même erreur... Tu utilises quelle version ? Je vais essayer de repasser à la 1.0.2 pour voir... |
||
|
|
00
|
|
|
#10 |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2006 Messages : 17 ![]() |
j'ai la version 1.0.3 (stable)
mais c'est le chemin je pense. Vérifie que le chemin est bon ( si tu n'es pas sûre ne garde pas dans ton chemin du relatif, mais copie le chemin indiqué par windows qd tu es dans le dossier voulu ) Verifie que tu as bien appelé le fichier avec require_once (ou autre include etc..) et tout ce qu'on a dit avant reste bon |
|
|
00
|
|
|
#11 | |||
|
Membre du Club
![]() Développeur Web Inscription : décembre 2005 Messages : 110 ![]() |
Citation:
En attendant, j'ai trouvé une solution pour contourner le problème. Dans le controller, j'affecte l'objet helper à une variable : Code :
Code :
<?php echo $this->helper->getDebutWidget('test', $this->imgDir); ?> Merci pour ton aide julz. |
|||
|
|
00
|
|
|
#12 | ||||
|
Membre du Club
![]() Développeur Web Inscription : décembre 2005 Messages : 110 ![]() |
Ca y est j'ai trouvé la solution (merci à Benjamin s'il passe par ici
La documentation officielle semble erronée, visiblement on ne peut pas redéfinir comme on veut le préfixe de la classe. J'avais passé en paramètre le préfixe 'Helper' et ça n'avait pas l'air de plaire au ZF. J'ai retenté ma chance sans préciser de préfixe, et carrément en supprimant l'instruction qui donnait le chemin vers le helper (si on respecte la structure de répertoire application/views/helpers/monHelper.php normalement pas besoin de préciser le chemin avec la méthode addHelperPath(). Du coup dans mon controller j'ai supprimé l'instruction suivante : Code :
Code :
|
||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com