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 通常
的选项都已经有了。