ZendFramework 1.11.3中的FrontController

时间:2011-02-22 08:50:31

标签: php zend-framework

Bootstrap.php中此方法的用途是什么?

protected function _initFrontControler(){
    $this->bootstrap('FrontController');
    $frontController = Zend_Controller_Front::getInstance();

    $frontController->throwExceptions(true);
    $frontController->returnResponse(true); 

    try { 
        $response = $frontController->dispatch();
        if($response->isException()) { 
            throw new Exception; 
        } 
        $response->sendResponse();
    } catch (Exception $e) { 
        print $e->getMessage(); 
    }
}

我知道它可以处理错误,但是例如布局不起作用。什么是此方法的完整实现,其行为与默认(或没有此方法)完全相同。

1 个答案:

答案 0 :(得分:0)

您也可以使用单独的资源初始化函数来引导布局,例如:

protected function _initViewSetting(){
 $this->bootstrap('layout');
 $this->bootstrap('view');

 ...
}

或者您可以在配置文件(ini / xml)中执行此操作,资源将自动加载。实际上,如果你仔细研究ZF代码,你会发现FrontController已经自动加载。而不是$this->bootstrap('FrontController'),你可以使用$this->getResource('FronController')

就个人而言,我不会使用您提供的代码。它只使用FrontController并调度请求,并负责异常处理。如果是在bootstrap中,直接调用dispatch()并不是很明智。如果我错了,有人会纠正我。