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

來源:互聯網
上載者:User

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

以上就介紹了zend framework Zend framework處理一個http請求的流程分析,包括了zend framework方面的內容,希望對PHP教程有興趣的朋友有所協助。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.