一千萬個為什麽

搜索

Zend Framework:在bootstrap中獲取請求對象

如何從引導程序文件中獲取請求對象?

我可以嘗試這種方法但不起作用。

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

最佳答案

如果你真的想,你可以實現這個要求:

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

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

但是,應該避免這種情況,因為在調度前端控制器之後,您需要從Response對象獲得的大多數數據都可用(例如,模塊,控制器或操作名稱)。

存儲在Response對象中的其他變量是從全局數組中提取的,例如 $ _ SERVER$ _ POST$ _ GET ,您可以異常直接在bootstrap中讀取。

但最有可能的是,您希望在前端控制器插件中使用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
     }
}

轉載註明原文: Zend Framework:在bootstrap中獲取請求對象