如何在bootstrap中访问URL参数

时间:2009-10-20 09:27:25

标签: zend-framework zend-controller

我正在尝试在我的bootstrap文件中捕获一个URL参数,但经过几次尝试后我无法做到。

我试过这个,但它不起作用:

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

这是正确的方法吗?

THKS。

1 个答案:

答案 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。尽管如此,您应该能够正确完成插件所需的任何操作。