IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MVC PHP Discussion :

[View_Helper] Aide de vue personnelle non trouvée [ZF 1.8]


Sujet :

MVC PHP

  1. #1
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut [View_Helper] Aide de vue personnelle non trouvée
    Bonjour,

    Je n'arrive pas à intégrer une aide de vue personnalisée.
    Cette aide est dans le fichier application/views/helpers/MaFonction.php

    Je l'ai déclarée ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    class My_View_Helper_MaFonction extends Zend_View_Helper_Abstract {
        public function maFonction($param) {
            return $param*2;
        }
    }
    et dans ma vue, je l'utilise ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <p>param = <?php echo $this->maFonction(3);?></p>
    Et j'obtiens une magnifique erreur de chargement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Message: Plugin by name 'MaFonction' was not found in the registry; used paths: Zend_View_Helper_: Zend/View/Helper/;D:/apache/htdocs/jml44/application/views\helpers/
    Comme vous pouvez le voir, le fichier des aides de vue est pourtant scanné. Où est le problème ?

    Au passage, l'autoloader dans le bootstrap :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        protected function _initAutoload() {
            $autoloader = new Zend_Application_Module_Autoloader(array(
                'namespace' => 'Default_',
                'basePath'  => dirname(__FILE__),
            ));
            return $autoloader;
        }
    D'avance merci pour votre aide

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Par défaut
    As-tu déclaré les helpers dans ton bootstrap ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $view = new Zend_View();
    $view->setHelperPath('../application/views/helpers', 'My_View_Helper');

  3. #3
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Yes, je m'auto-resoud !

    J'avais zappé un petit bout de la doc :
    Le nom de la classe doit, au minimum, se terminer avec le nom de l'aide en utilisant une notation en casseMélangée. Par exemple, si vous écrivez une aide appelée "actionSpeciale", le nom de la classe doit être au minimum "ActionSpeciale". Vous devriez donner au nom de la classe un préfixe, et il est recommandé d'utiliser "Ma_View_Helper" comme partie de ce préfixe : "Ma_View_Helper_ActionSpeciale". (Vous devez alors fournir le préfixe, avec ou sans le tiret bas, à addHelperPath() ou à setHelperPath()).
    Ceci dit, je ne trouve pas cela très pratique, ni très intuitif. Le script helper faisant déjà partie du chemin de recherche, ce serait plus simple de ne pas avoir à spécifier cette ligne.

    Quoi qu'il en soit, je l'ai placé dans la méthode init de mon controller, et ça marche au poil.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 13/05/2013, 13h31
  2. Réponses: 3
    Dernier message: 15/05/2012, 15h31
  3. Tomcat et classe personnel non trouvée.
    Par swirtel dans le forum Tomcat et TomEE
    Réponses: 6
    Dernier message: 15/02/2005, 14h43
  4. COleDispatchDriver et Afx.h -> LPCSTR non trouvé
    Par Bayard dans le forum C++Builder
    Réponses: 2
    Dernier message: 25/09/2004, 08h42
  5. [Debutant][Install][VS]erreur sur fichier non trouvé.
    Par silvermoon dans le forum DirectX
    Réponses: 4
    Dernier message: 16/07/2004, 20h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo