2009-10-20 6 views
7

J'essaye de capturer un paramètre d'URL dans mon fichier d'amorçage mais après plusieurs tentatives je ne suis pas capable de le faire.Comment accéder aux paramètres d'URL dans le bootstrap

J'ai essayé cela, mais il ne fonctionne pas:

protected function _initGetLang() { 
    $frontController = Zend_Controller_Front::getInstance(); 
    $lang= $frontController->getParam('lang'); 
} 

Est-ce la bonne façon de le faire?

Th.

Répondre

9

Vous ne pourrez pas accéder aux paramètres de requête à partir du bootstrap, car il n'a pas encore subi le processus de répartition/routage. Je pense que vous seriez mieux servi en utilisant un Controller Plugin, effectuer des actions en fonction de l'URL est ce qu'ils font de mieux. Ou si vous devez absolument le faire dans le bootstrap, getRequestUri() ou $_GET est disponible, ou vous pouvez écrire un script rapide pour analyser l'URL vous-même.

Edit:

Je l'ai fait des choses stupides comme ça dans le passé avant de comprendre comment fonctionnent les plugins:

/** 
* Grab the module name without a request instance 
* 
* @return string The module name 
*/ 
public static function getModuleName() 
{ 
    $uri = ltrim($_SERVER["REQUEST_URI"], "/"); 
    $module = substr($uri, 0, strpos($uri, "/")); 
    return $module; 
} 

Ce serait au moins vous donner un nom de module que vous pourrait switch sur dans le bootstrap. Vous devriez être capable de faire tout ce dont vous avez besoin avec les plugins correctement.

+2

Voir aussi cet article de Zend Devzone: http://devzone.zend.com/article/3372 –

+0

Merci les gars pour vos réponses, j'ai déjà essayé l'approche Plugin mais ça n'a pas fait ce que je voulais, néanmoins Je lirai l'article que 'lonut G. Stan' pour vérifier si j'ai fait quelque chose de mal, Si cela ne fonctionne pas, je ferai la chose $ _GET que 'Typeoneerror' suggère. – elbicho

Questions connexes