Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour à tous,
Je m'arrache les cheveux avec un souci qui sera surement tout simple pour vous. En effet, je cherche à charger un helper dans mon boostrap.
Mon helper se nomme "Aide_Controleur_Init" : class Aide_Controleur_Init extends Zend_Controller_Action_Helper_Abstract
Il est situé ici : "application/aides/controleurs/Init.php"
Dans mon boostrap, j'ai le code suivant :
[lang=php] public function __construct($application) { parent::__construct($application); $autoloader = Zend_Loader_Autoloader::getInstance(); $ldconf = array('basePath' => './aides', 'namespace' => 'Aide', 'resourceTypes' => array( array( 'path' => 'controleurs', 'namespace' => 'Controleur'))); $resourceLoader = new Zend_Loader_Autoloader_Resource($ldconf); Zend_Controller_Action_HelperBroker::addHelper(new Aide_Controleur_Init()); }
Je ne comprends pas, Zend ne trouve pas mon fichier car j'ai l'erreur suivante : Fatal error: Class 'Aide_Controleur_Init' not found in E:\wamp\www\zend_framework\XXX\application\Bootstrap.php on line 38
J'ai essayé également de passer par ceci :
[lang=php] Zend_Controller_Action_HelperBroker::addPath('./aides/', 'Aide'); Zend_Controller_Action_HelperBroker::addPrefix('Aide'); Zend_Controller_Action_HelperBroker::addHelper(new Aide_Controlleur_Init());
sans succès. Auriez-vous une piste qui puisse m'indiquer la solution ?
Je vous remercie d'avance,
Anthony
Dernière modification par Antho77 (13-06-2012 11:53:48)
Hors ligne
Dans ton application.ini
autoloadernamespaces[] = "App_" resources.frontController.actionHelperPaths.App_Controller_Action_Helper = "App/Controller/Action/Helper"
Ensuite tu peux appeler tes helper dans tes controleurs.
Hors ligne
Merci pour ta réponse mais cela ne fonctionne pas.
Mon fichier se trouve dans le dossier "application/controllers/action/helpers" se nomme "Init.php" la classe se nomme désormais class App_Controller_Action_Helper_Init extends Zend_Controller_Action_Helper_Abstract
j'ai essayé du coup plusieurs méthodes :
autoloadernamespaces[] = "App_"
resources.frontController.actionHelperPaths.App_Controller_Action_Helper = "/App/controllers/Action/Helper"
J'ai essayé également ceci :
autoloadernamespaces[] = "App_"
resources.frontController.actionHelperPaths.App_Controller_Action_Helper = APPLICATION_PATH "/controllers/action/helper"
J'ai essayé de créer un dossier "App" dans le dossier "application" avec dedans un dossier "controllers/Action/Helper" mais sans succès ...
autoloadernamespaces[] = "App_"
resources.frontController.actionHelperPaths.App_Controller_Action_Helper = APPLICATION_PATH "/App/controllers/Action/Helper"
Hors ligne
Il faut placer ton init.php dans /library/App/Controller/Action/Helper
Dernière modification par shadypierre (14-06-2012 10:40:34)
Hors ligne
Ah oui dans ce cas ça devrait marcher car en effet il cherche le fichier ici, mais n'y a t-il pas un moyen de rendre la chose indépendante en créant un dossier dans le dossier application ?
Hors ligne
Surement, cependant une aide d'action ne devrait pas faire partie de l'application, étant donné quel doit être réutilisable sur différent projet. L'idée c'est de pouvoir conserver ta librairie perso sur différent projet, ce qui est exclu si tu met cette aide ds le dossier application.
Hors ligne