Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
Je cherche à récupérer dans quel module/controller/action se trouve l'utilisateur dès le bootstrap.
J'ai fais tout un tas de tentatives mais rien, j'ai des erreurs dans tous les sens.
J'ai vu que je pouvais passé par du preDispatch, mais je n'ai pas compris comment faire.
Quelqu'un peut m'éclairer ?
Merci
Dernière modification par Geoffrey (19-04-2010 23:12:33)
Hors ligne
C'est impossible.
Le bootstrap sert à initialiser l'application. Tu devrais utiliser un plugins(preDispatch) pour initialiser la requête courant.
Dernière modification par 3uclide (16-04-2010 16:24:04)
Hors ligne
Merci, grâce à cette piste j'ai pu faire ce que je voulais.
J'avais cherché en vain des solution en preDispatch, sans faire le lien avec le terme de plugin, le fait d'avoir les 2 termes m'a permis de tomber sur le site philippe qui parle justement de çà dans un de ces nombreux tuto.
Hors ligne
il y a quelques temps, une aide de vue permettant de faire ceci existait.
Je peux de la ressortir si tu veux.
Hors ligne
Je te remercie, mais j'avais besoin de ces infos avant que le controller soit exécuté et donc un contrôlle au niveau de la vue arrive trop tard. Je suis passé par un plugin que je passe en preDispatch et çà tourne nikel.
Hors ligne
Serait-il possible de voir le code de ta solution celà pourrait servir à d'autre ;-)
Hors ligne
Voilà mon plugin (dans application/common/controllers/plugins/ForcerPassword.php) :
<?php class Common_Controllers_Plugins_ForcerPassword extends Zend_Controller_Plugin_Abstract { public function preDispatch (Zend_Controller_Request_Abstract $request) { var_dump($request->getModuleName()); var_dump($request->getControllerName()); var_dump($request->getActionName()); } } ?>
Et dans mon bootstrap, j'ai (entre autres) :
protected function _initAutoload() { require_once 'Zend/Loader/Autoloader.php'; $autoloader = Zend_Loader_Autoloader::getInstance(); $autoloader->registerNamespace(array( 'Common_' )); }
protected function _initControllersPlugins() { $this->bootstrap('frontController'); $frontController = $this->getResource('frontController'); $frontController->registerPlugin(new Common_Controllers_Plugins_ForcerPassword()); }
Hors ligne
Pages: 1