Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjours,
Cette question vous paraitra une stupide, mais je n'arrive pas à trouver les éléments qui permettent à ZF d'aller chercher tel ou tel contrôleur ou action.
en mode rewriting (qui est recommandé sur le site), les url sont de ce type :
http://exemple.fr/index/index
Je souhaiterais connaitre toute la structure de type :
http://exemple.fr/index.php?controller= … tion=index
J'ai cherché dans la doc du site de ZF mais ils expliquent uniquement le fonctionnent sur de l'url Rewirting.
Merci d'avance de vos réponses.
Hors ligne
Salut,
De mémoire, il y a ces trois méthodes :
Zend_Controller_Front::getInstance()->getRequest()->getModuleName(); Zend_Controller_Front::getInstance()->getRequest()->getControllerName(); Zend_Controller_Front::getInstance()->getRequest()->getActionName();
Ou plus simplement depuis un contrôleur :
$this->getRequest()->getModuleName(); $this->getRequest()->getControllerName(); $this->getRequest()->getActionName();
Dernière modification par acharrex (26-05-2009 09:57:33)
Hors ligne
Merci pour cette réponse. Et ça ma aidé un peu.
J'en ai donc profiter pour faire ceci :
print_r ( Zend_Controller_Front::getInstance()->getRequest() );
Qui m'a afficher cela :
Zend_Controller_Request_Http Object ( [_paramSources:protected] => Array ( [0] => _GET [1] => _POST ) [_requestUri:protected] => /index.php?controller=index&action=index&module=default [_baseUrl:protected] => /index.php [_basePath:protected] => [_pathInfo:protected] => [_params:protected] => Array ( [controller] => index [action] => index [module] => default ) [_aliases:protected] => Array ( ) [_dispatched:protected] => 1 [_module:protected] => default [_moduleKey:protected] => module [_controller:protected] => index [_controllerKey:protected] => controller [_action:protected] => index [_actionKey:protected] => action )
Et plus particulièrement la ligne de code qui m'intéresse :
[_params:protected] => Array ( [controller] => index [action] => index [module] => default )
Je me suis donc dit que si je construit une url de type :
index.php?controller=index&action=index&module=login
ça va fonction ! Et bien ça ne change rien pourquoi et ?
Je suis dans une config de type modulaire.
Hors ligne
au démarrage ton frontController instancie un httprequest celui-ci analyse l'url
et dans ton cas il n'y a ni controller ni action ni module il mets donc les valeur par défaut dans _params
mais les paramètre query string eux n'y prennent pas place
par contre si tu fait un getParams tu vas les trouver
car la méthode fusion _params _GET et _POST
print_r ( Zend_Controller_Front::getInstance()->getRequest()->getParams() );
A+JYT
Hors ligne
Oui mais pourquoi je ne peux pas taper des url de type ?
index.php?module=login
J'essaye de développer un appli admin donc les URL améliorées ne sont donc pas intéressantes dans ce cas.
Hors ligne
ça ne changera pas grand chose d'avoir des url en ?= de toute façon tes noms de modules contrôleur et action y seront présent
si tu y tien il te faut le traiter dans l'action /default/index/index
tu récupère les paramètres et s'il y a module controller et action alors tu fais un forward vers l'action
mais attention pour zf ton action sera index index il faudra être vigilant sur le renderer
A+JYT
Hors ligne
OK !
Pour le moment je développe en utilisant les fonctionnalités de ZF mais je vais tout de même voir ta solution.
J'ai pas encore tout compris à ZF
merci !
Hors ligne
Juste par curiosité... pourquoi souhaites-tu utiliser des URL "standards" (ex. index.php?module=XX&controller=YY&action=ZZ) plutôt que des jolies URL réécrites ? (ex. /XX/YY/ZZ)
Hors ligne
acharrex a écrit:
Juste par curiosité... pourquoi souhaites-tu utiliser des URL "standards" (ex. index.php?module=XX&controller=YY&action=ZZ) plutôt que des jolies URL réécrites ? (ex. /XX/YY/ZZ)
A l'origine c'est par ce que c'est un administrateur que je développe. Donc les jolies url ne m'intéressent pas, et je n'étais pas familiarisé travailler ainsi. En général les urls je les retravaille à la fin quand toute la prog est fini.
Mais j'ai fini par opter pour cette technique. Par contre je serais curieux de savoir s'il est passible de désactiver cette option.
a+
Hors ligne