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存在的。 對象