加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 在Zend Framework中更改模块名称

发布时间:2020-12-13 21:35:46 所属栏目:PHP教程 来源:网络整理
导读:ZF 1.9.6 尝试根据请求的用户代理更改模块. 当我尝试从Front获取请求对象时,我得到NULL. 目前我正在尝试从我创建的Bootstrap _initModule方法设置模块名称. $front = Zend_Controller_Front::getInstance();$request = $front-getRequest(); // This is NULL
ZF 1.9.6
尝试根据请求的用户代理更改模块.
当我尝试从Front获取请求对象时,我得到NULL.

目前我正在尝试从我创建的Bootstrap _initModule方法设置模块名称.

$front = Zend_Controller_Front::getInstance();
$request = $front->getRequest(); // This is NULL
$request = new Zend_Controller_Request_Http();
$request->setModuleName('iphone');
$front->setRequest($request);

但是,执行时,它仍然会进入“默认”模块.

解决方法

我不认为Bootstrap是正确的地方,因为它发生在任何请求路由开始之前.

我建议使用preDispatch前端控制器插件:

class Your_Application_Plugin_ModuleSelector extends Zend_Controller_Plugin_Abstract {
    public function preDispatch(Zend_Controller_Request_Abstract $request) {
        ...
        $request->setModuleName('iphone');
    }
...
}

附:

resources.frontController.plugins.moduleselector = "Your_Application_Plugin_ModuleSelector"

在你的application.ini中

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读