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

Zend Framework PHP Discussion :

La classe du Helper d'action n'est pas detectée. [ZF 1.11]


Sujet :

Zend Framework PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 5
    Par défaut La classe du Helper d'action n'est pas detectée.
    J'ai suivi le tutoriel Z-F de ce site: MVC, les plugins et les aides d'action (helpers) par Matthew Weier O'Phinney, Julien Pauli.

    En voulant tester l'exemple sur mon poste, j'ai créer le fichier php avec la classe: class My_Helper_FormLoader extends Zend_Controller_Action_Helper_Abstract

    Ce code doit être placé dans un fichier appelé 'FormLoader.php', situé dans le dossier 'My/Helper/', lui-même dans l'include_path.

    C'est là que ça se corse (ça peut vous paraitre simple), mais j'ai placé ce dossier "My" à la racine de l'application, et je n'arrive pas à l'inclure dans l'include_path.
    J'ai essayé de modifier successivement application.ini, index.php et Bootstrap.php, rien n'y fait.

    Est-ce quelqu'un aurait réussi à réaliser ce tutoriel et à appeler le formulaire grâce à l'aide d'action ?
    Appel de la forme: $loginForm = $this->_helper->formLoader('login'); ?

  2. #2
    Membre Expert
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Par défaut
    Bonjour
    My doit etre placé dans library et tu dois déclarer le namespace My

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 5
    Par défaut bonjour,
    dans application.ini, j'ai ajouté: autoloaderNamespaces[] = "My"
    Normalement j'accède à présent à la classe My_Helper_FormLoader

    Comme l'instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $loginForm = $this->_helper->formLoader('login');
    ne fonctionne toujours pas, j'ai aussi ajouté dans index.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $autoloader = Zend_Loader_Autoloader::getInstance();
    $autoloader->registerNamespace('My_');
    C'est pas encore ça, mais existe-il une syntaxe qui fonctionne qui a fait ses preuves déclarer un namespace ?

    Il est aussi dit d'ajouter l'instruction suivante dans le Boostrap :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Zend_Controller_Action_HelperBroker::addPrefix('My_Helper');
    Sans préciser dans quelle méthode. Je l'ai ajouter dans init(), mais toujours pas de résultat

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 5
    Par défaut
    Merci 5h4rk, j'ai désormais accès à la classe du Helper.

    Mais lorsque j'appelle:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $loginForm = $this->_helper->formLoader('login');
    J'ai le message d'erreur suivant (copié/collé tel quel ):
    Plugin by name 'Login' was not found in the registry; used paths: Form_: C:\xampp\htdocs\tutoriel-zf\application/forms/
    Le formulaire Application_Form_Login existe bien.
    Quelqu'un saurait-il ce que signifie ce Plugin pas trouvé ?
    Et les séparateurs qui sont \ puis / dans le message, faut-il y prêter attention.

  5. #5
    Membre Expert
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Par défaut
    Il faut que tu mettes le nom de ta classe et non pas le nom du fichier.

    Donc quelque chose comme Application_Form_Login

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 5
    Par défaut bonjour,
    je reviens sur la mise en place du helper.

    ça fonctionne, après avoir ajouté dans application.ini

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    resources.frontController.actionHelperPaths.My_Helper = APPLICATION_PATH "/../library/My/Helper"
    et dans mon application, les formulaires commencent par Application_Form_ ,
    donc en changeant la classe du helper My_Helper_FormLoader, à la ligne du préfixe.

    Cette ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $prefix = (('default' == $module) ? '' : ucfirst($module) . '_')
                    . 'Form_';
    devient

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $prefix = (('default' == $module) ? '' : ucfirst($module) . '_')
                    . 'Application_Form_';
    Le nom de la classe du formulaire m'a mis sur la piste. C'est résolu

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

Discussions similaires

  1. Réponses: 18
    Dernier message: 07/02/2007, 14h33
  2. Réponses: 2
    Dernier message: 22/11/2006, 17h12
  3. Réponses: 2
    Dernier message: 27/07/2006, 09h30
  4. Etat HTTP 404 - Servlet action n'est pas disponible.???
    Par iftolotfi dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 05/05/2006, 14h44
  5. [Servlet action n'est pas disponible]
    Par JauB dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 04/11/2005, 09h23

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