Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5008876
  • 博文数量: 921
  • 博客积分: 16037
  • 博客等级: 上将
  • 技术积分: 8469
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-05 02:08
文章分类

全部博文(921)

文章存档

2020年(1)

2019年(3)

2018年(3)

2017年(6)

2016年(47)

2015年(72)

2014年(25)

2013年(72)

2012年(125)

2011年(182)

2010年(42)

2009年(14)

2008年(85)

2007年(89)

2006年(155)

分类:

2008-12-01 03:08:09

1 各模块工作原理
1.1Zend_Models工作原理
    通过继承Zend_Db_Table(abstract类)管理一个Model类。

1.2Zend_Controller工作原理
    Zend_Controller_Front接收一个请求,然后由 Zend_Controller_Router来决定分配给哪个controller(实现Zend_Controller_Action的类)。 Zend_Controller_Router把URI分解封装成一个Zend_Controller_Dispatcher_Token 对象。Zend_Controller_Front接着进入一个分配循环,调用Zend_Controller_Dispatcher,把token对象传给dispatcher来分配到具体的controller和action进行处理。在controller结束后,又把控制权交加给 Zend_Controller_Front。如果controller发现需要分配另一个controller(返回一个新的token对象),循环会一直继续直到另一次分配执行完毕。

Zend_Controller_Action提供控制器的基本方法,其他控制器都应该是Zend_Controller_Action的子类。

  说明:
  Zend_Controller_Dispatcher对象在Zend_Controller_Front和实现Router、Dispacther接口的类之间传递。它把Controller、Action和其他Get参数封装到一起。
       处理Controller名称:getControllerName()、setControllerName();
       处理Action名称:getActionName()、setActionName();
       传递给Action参数:getParams()、setParams()。参数是数组key/value形式。

1.3Zend_Views工作原理

2 ZFW基本配置
Index.php:

//设置路径
set_include_path();

//包含Zend/Loader.php类
include 'Zend/Loader.php';

//通过类的静态方法加载其他类
Zend_Loader::loadClass('Zend_Controller_Front');
Zend_Loader::loadClass('Zend_Config_Ini');
Zend_Loader::loadClass('Zend_Registry');
Zend_Loader::loadClass('Zend_Db');
Zend_Loader::loadClass('Zend_Db_Table');
Zend_Loader::loadClass('Zend_Debug');
Zend_Loader::loadClass('Zend_Auth');

//加载配置
new Zend_Config_Ini
Zend_Registry::getInstance()

//设置前端控制器
Zend_Controller_Front::getInstance()
setControllerDirectory()
dispatch()

在index.php不用 ’?>’ 结束,便于错误调试?

类名需要写成模块名_文件名

3 MVC处理规则
  所有的请求都通过单一的index.php作为启动文件,或者说对任何url, 重定向到index.php。对于iamges、css、javascript的请求,不应该重定向到启动文件,把这些文件放到其他目录,如:public。默认controller和action都是index。

 Model的命名:默认类名跟表名保持一致,关键字默认id。可以指定表名和主键名,private $_name=’’和private $_primary=’’。

Controller的命名:类名和文件名一致,{Controllername}Controller.php,每个单词都以大写字母开头;

 Action的命名:每个Action是Controller里的public函数,名字必须是{actionname}Action,actionname要小写。每个页面叫做‘action’,许多‘action’组成控制器。

 Views的命名:存放到对应Controller下并以action.phtml命名。
阅读(1097) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~