1, 首先是bootstrap过程,初始化程序里用到的资源 html
2, 建立一个Zend_Controller_Front实体,实现front controller模式,这个实体类会负责将http请求派遣到恰当的controller的action里。 数据库
3, Front controller会建立俩个对象来封装http请求和http回复,分别是Zend_Controller_Request_Http和Zend_Controller_Response_Http bootstrap
4, Front controller会建立俩个对象来实现url寻路和派遣,分别是routing和dispatcher, 分别负责找到指定url应该执行的控制器和动做,和载入对应的程序文件并执行对应的方法。 浏览器
5, 经过controller的plugin机制,Zend_Controller_Action_ViewRenderer会为controller的实体类建立一个view属性,这个view是一个Zend_View的实体对象。它还负责在controller action请求处理完成后,将相应的template文件render呈现到http response对象里。最后response对象的内容会由Front Controller输出到浏览器。 函数
6, 在第五步中,虽然template文件是由ViewRender助手对象来定位的,可是是由Zend_VIew的一个成员函数执行的(include进这个template文件),因此在Controller里属性里view对象的全部属性和成员函数在template文件里均可以被使用。 url
这样一个http请求的生命周期就结束了,浏览器得到了内容。在controller的action给view指定要呈现的变量时,它通常会经过Zend_Db_Table与数据库交互,得到数据。 spa
与数据库交互处理数据称为business logic, template文件里也会包涵简单的循环等逻辑,这个称为display logic。 htm
在MVC实现中,Model负责处理business logic, View负责处理display logic,而Controller则负责协调这俩部分,从而Controller的代码应该尽可能简洁,它只是做为一个agent存在的。 对象