我正在尝试在我的bootstrap文件中捕获一个URL参数,但经过几次尝试后我无法做到。
我试过这个,但它不起作用:
protected function _initGetLang() {
$frontController = Zend_Controller_Front::getInstance();
$lang= $frontController->getParam('lang');
}
这是正确的方法吗?
THKS。
答案 0 :(得分:9)
您将无法从引导程序访问请求参数,因为它尚未完成分派/路由过程。我认为使用Controller Plugin可以更好地为您服务,基于URL执行操作是他们最擅长的。或者如果您必须在引导程序中执行此操作,getRequestUri()
或$_GET
可用,或者您可以编写一个快速脚本来自行解析该URL。
修改强>
在我弄清楚插件是如何工作之前,我在过去做过一些像这样的愚蠢的事情:
/**
* 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
。尽管如此,您应该能够正确完成插件所需的任何操作。