Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework
Zend Framework Forum d'entraide sur la programmation PHP avec Zend Framework. Avant de poster -> FAQ ZF, Cours ZF
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/01/2012, 17h36   #1
Invité de passage
 
Inscription : octobre 2010
Messages : 5
Détails du profil
Informations forums :
Inscription : octobre 2010
Messages : 5
Points : 1
Points : 1
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'); ?
chris_dev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2012, 22h13   #2
Modérateur
 
Homme Loïc
Développeur Web
Inscription : février 2011
Messages : 680
Détails du profil
Informations personnelles :
Nom : Homme Loïc
Âge : 26
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2011
Messages : 680
Points : 1 044
Points : 1 044
Bonjour
My doit etre placé dans library et tu dois déclarer le namespace My
5h4rk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2012, 23h21   #3
Invité de passage
 
Inscription : octobre 2010
Messages : 5
Détails du profil
Informations forums :
Inscription : octobre 2010
Messages : 5
Points : 1
Points : 1
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 :
$loginForm = $this->_helper->formLoader('login');
ne fonctionne toujours pas, j'ai aussi ajouté dans index.php

Code :
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 :
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
chris_dev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2012, 22h16   #4
Invité de passage
 
Inscription : octobre 2010
Messages : 5
Détails du profil
Informations forums :
Inscription : octobre 2010
Messages : 5
Points : 1
Points : 1
Merci 5h4rk, j'ai désormais accès à la classe du Helper.

Mais lorsque j'appelle:
Code :
$loginForm = $this->_helper->formLoader('login');
J'ai le message d'erreur suivant (copié/collé tel quel ):
Citation:
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.
chris_dev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2012, 13h15   #5
Modérateur
 
Homme Loïc
Développeur Web
Inscription : février 2011
Messages : 680
Détails du profil
Informations personnelles :
Nom : Homme Loïc
Âge : 26
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2011
Messages : 680
Points : 1 044
Points : 1 044
Il faut que tu mettes le nom de ta classe et non pas le nom du fichier.

Donc quelque chose comme Application_Form_Login
5h4rk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 22h05   #6
Invité de passage
 
Inscription : octobre 2010
Messages : 5
Détails du profil
Informations forums :
Inscription : octobre 2010
Messages : 5
Points : 1
Points : 1
Par défaut bonjour,

je reviens sur la mise en place du helper.

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

Code :
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 :
1
2
$prefix = (('default' == $module) ? '' : ucfirst($module) . '_')
                . 'Form_';
devient

Code :
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
chris_dev est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h42.


 
 
 
 
Partenaires

Hébergement Web