background image

Zend 的 MVC 机制使用分析()

本文是对 Zend 的 MVC 更深层次的使用分析
代码

$front

 = Zend_Controller_Front::getInstance(); 

Zend_Layout::startMvc(

array

('layoutPath' => USVN_LAYOUTS_DIR)); 

 

$front

->setRequest(

new

 Zend_Controller_Request_Http()); 

$front

->throwExceptions(true); 

$front

->setBaseUrl(

$config

->url->base); 

 

$router

 = 

new

 Zend_Controller_Router_Rewrite(); 

$routes_config

 = 

new

 USVN_Config_Ini(USVN_ROUTES_CONFIG_FILE, 

USVN_CONFIG_SECTION); 

$router

->addConfig(

$routes_config

, 'routes'); 

$front

->setRouter(

$router

); 

$front

->setControllerDirectory(USVN_CONTROLLERS_DIR); 

 

$front

->dispatch(); 

上一篇把前两句 getInstance 和 startMvc 两个函数已经读完了,下面是继续分析后面的代

setRequest($request) 这里是判断 request 是否是继承自 Zend_Controller_Request_Abstract,
如果是的话就把 front 的_request 赋值为它。
这里需要了解下什么是 Zend_Controller_Request_Abstract,它是所有 request 抽象出来的抽
象类。Zend 已经提供了两个实现类,Zend_Controller_Request_Http 和
Zend_Controller_Request_Simple,一般我们搭建服务器都是 http 请求,所以你的项目如果
需要重新继承的话,一般都直接继承 Zend_Controller_Request_Http。
Zend_controller_Request_Http 中我们经常会使用到的
getQuery,getCookie,getRequestUri,getBasePath,getParams,getHeader 等这些 Http 通常
的选项都已经有了。