如何在bootstrap中访问URL参数

elb*_*cho 7 zend-framework zend-controller

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

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

protected function _initGetLang() {
  $frontController = Zend_Controller_Front::getInstance();
  $lang= $frontController->getParam('lang');
}
Run Code Online (Sandbox Code Playgroud)

这是正确的方法吗?

THKS.

typ*_*ror 9

您将无法从引导程序访问请求参数,因为它尚未完成分派/路由过程.我认为使用Controller插件可以更好地服务,基于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;
}
Run Code Online (Sandbox Code Playgroud)

这至少会为您提供一个可以switch在引导程序中使用的模块名称.尽管如此,您应该可以通过正确完成插件来执行任何操作.

  • 另见Zend Devzone文章:http://devzone.zend.com/article/3372 (2认同)