程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> Zend framework處理一個http請求的流程分析

Zend framework處理一個http請求的流程分析

編輯:關於PHP編程

zend framework 處理請求流程圖

 

1, 首先是bootstrap過程,初始化程序裡用到的資源

2, 創建一個Zend_Controller_Front實體,實現front controller模式,這個實體類會負責將http請求派遣到恰當的controller的action裡。

3, Front controller會創建倆個對象來封裝http請求和http回復,分別是Zend_Controller_Request_Http和Zend_Controller_Response_Http

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文件裡都可以被使用。

 

這樣一個http請求的生命周期就結束了,浏覽器獲得了內容。在controller的action給view指定要呈現的變量時,它一般會通過Zend_Db_Table與數據庫交互,獲得數據。

與數據庫交互處理數據稱為business logic, template文件裡也會包涵簡單的循環等邏輯,這個稱為display logic。

在MVC實現中,Model負責處理business logic, View負責處理display logic,而Controller則負責協調這倆部分,從而Controller的代碼應該盡量簡潔,它只是作為一個agent存在的。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved