当前位置:  开发笔记 > 编程语言 > 正文

Zend Framework:在bootstrap中获取请求对象

如何解决《ZendFramework:在bootstrap中获取请求对象》经验,为你挑选了2个好方法。

如何从引导程序文件中获取请求对象?

我可以尝试这种方法但不起作用.

$request= new Zend_Controller_Request_Http();
$request = Zend_Controller_FrontController::getInstance()->getRequest();

takeshin.. 12

如果你真的想,你可以实现这个要求:

public function _initRequest()
{
    $this->bootstrap('frontController');
    $front = $this->getResource('frontController');
    $front->setRequest(new Zend_Controller_Request_Http());

    $request = $front->getRequest();
}

但是,应该避免这种情况,因为在调度前端控制器之后,您需要从Response对象获得的大多数数据都可用(例如,模块,控制器或操作名称).

存储在响应对象中的其它变量都从全局数组如提取$_SERVER,$_POST或者$_GET您可以格外在自举直接读取.

但最有可能的是,您希望在前端控制器插件中使用Response对象:

class Your_Controller_Plugin_PluginName extends Zend_Controller_Plugin_Abstract
{
     public function preDispatch(Zend_Controller_Request_Abstract $request)
     {
         // do anything with the $request here
     }
}


小智.. 10

您不应该获得请求对象,因为如果您看到调度循环,那么想法是引导程序是在请求中执行之前的操作.

如果您需要更改某个应用程序,请使用Controller插件来执行此操作.



1> takeshin..:

如果你真的想,你可以实现这个要求:

public function _initRequest()
{
    $this->bootstrap('frontController');
    $front = $this->getResource('frontController');
    $front->setRequest(new Zend_Controller_Request_Http());

    $request = $front->getRequest();
}

但是,应该避免这种情况,因为在调度前端控制器之后,您需要从Response对象获得的大多数数据都可用(例如,模块,控制器或操作名称).

存储在响应对象中的其它变量都从全局数组如提取$_SERVER,$_POST或者$_GET您可以格外在自举直接读取.

但最有可能的是,您希望在前端控制器插件中使用Response对象:

class Your_Controller_Plugin_PluginName extends Zend_Controller_Plugin_Abstract
{
     public function preDispatch(Zend_Controller_Request_Abstract $request)
     {
         // do anything with the $request here
     }
}



2> 小智..:

您不应该获得请求对象,因为如果您看到调度循环,那么想法是引导程序是在请求中执行之前的操作.

如果您需要更改某个应用程序,请使用Controller插件来执行此操作.

推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有