php優秀框架codeigniter學習系列——CI_Output類的學習

這篇文章主要介紹CI核心框架工具類CI_Output。
根據CI文檔本身的定義,這個類主要就是生成返回的頁面給瀏覽器。如下選取類中的重點方法進行說明。瀏覽器

__construct()


在構造函數中,主要肯定是否對輸出內容使用zlib壓縮,若是使用會開啓gzip壓縮功能。另外還有一些細節的處理。緩存

_display_cache(&$CFG, &$URI)


兩個參數:服務器

  • &$CFG CI_Config類的實例
  • &$URI CI_URI類的實例

該類先找到訪問路徑,而且轉成md5碼;
用md5碼與已存在的緩存文件名進行比較,若是不存在返回false,若是存在加鎖讀取緩存內容;
取出存在緩存文件中的超時時間,與如今時間進行對比,若是超時,刪除文件,返回false; 若是沒有超時,進行下一步操做;
經過$this->set_cache_header函數設置http返回頭;
經過$this->_display函數返回顯示緩存內容,並返回true。框架

_display($output = '')


主要的處理函數,處理和發送最後的輸出數據給瀏覽器,而且包括服務器響應頭和配置數據。同時它也會中止計時器,因此能夠在這裏顯示頁面渲染用時和內存使用狀況。
值得注意的是,在進入這個函數以前,全部"view"的數據已經被controller類自動存入了$this->final_output變量中。
該函數主要作了以下事情:
1.寫緩存;
2.若是不是顯示緩存內容,開啓壓縮;若是是顯示緩存內容,輸出內容,返回;
3.若是須要顯示性能數據,在數據$output中追加上性能數據;
4.若是用戶有自定義輸出函數,轉到該函數去輸出;若是沒有,直接輸出$output。函數

相關文章
相關標籤/搜索