2009-10-20 2 views
7

Я пытаюсь захватить параметр URL-адреса в моем загрузочном файле, но после нескольких попыток я не могу этого сделать.Как получить доступ к параметрам URL-адреса в bootstrap

Я попытался это, но он не работает:

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

Является ли это правильный способ сделать это?

Thks.

ответ

9

Вы не сможете получить доступ к параметрам запроса из начальной загрузки, поскольку он еще не прошел процесс отправки/маршрутизации. Я думаю, вам будет лучше обслуживаться с помощью Controller Plugin, выполнение действий на основе URL-адреса - это то, что они делают лучше всего. Или, если вам абсолютно необходимо сделать это в начальной загрузке, вы можете найти getRequestUri() или $_GET, или вы можете написать быстрый скрипт для самостоятельного анализа URL.

Edit:

Я сделал некоторые глупые вещи, как это в прошлом, прежде чем я понял, как работают плагины:

/** 
* 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; 
} 

Это, по крайней мере, дать вам имя модуля, который мог switch дальше в бутстрапе. Вы должны иметь возможность делать все, что вам нужно, с плагинами, выполненными правильно.

+2

См. Также эту статью Zend Devzone: http://devzone.zend.com/article/3372 –

+0

Спасибо, ребята, за ваши ответы, я пробовал использовать плагин раньше, но он не делал то, что я хотел, прочитаю статью «lonut G. Stan», чтобы проверить, не сделал ли я что-то не так. Если это не сработает, я сделаю вещь $ _GET, которую предлагает «Typeoneerror». – elbicho