首頁  >  文章  >  後端開發  >  ThinkPHP32 載入過程(一)

ThinkPHP32 載入過程(一)

WBOY
WBOY原創
2016-08-08 09:23:34992瀏覽

加載過程(官方介紹)

  1. <span>用戶<span>URL<span>請求</span></span></span>
  2. <span>調用應用程式入口檔案(通常是網站的<span> <span><span><span>載入框架入口檔案( </span>ThinkPHP</span>.</span>php</span>)</span>
  3. <span><span><span><span><span>記錄初始運行時間和記憶體開立</span></span> </span></span>載入框架引導類別(</span>Think Think
  4. )並執行
  5. Think::<span>start</span>方法進行應用初始化
  6. <span></span>
  7. 呼叫
  8. ThinkStorage 類別進行儲存初始化(由STORAGE_TYPE常數定義儲存類型)<span></span>常數定義儲存類型)
  9. 讀取應用模式(由<span>APP_MODE</span>常數定義)的定義檔(以下以普通模式為例說明)
  10. <span><span><span> <span><span>ThinkPHP<span>/</span>Mode</span>/</span>common</span>.</span>php</span>)
  11. <span><span><span> </span>ThinkPHP</span>/</span>Conf/
  12. convention
  13. .php<span></span>
  14. <span><span><span><span><span><span> /<span>config<span>.<span>php<span> )</span></span></span></span></span></span></span></span></span></span>
  15. <span><span><span>載入系統別名cation<span>/<span>Common<span>/<span> Conf<span>/<span>alias<span>.</span>php</span>)</span></span></span></span></span></span></span></span>
  16. <span>判斷並讀取應用程式行為定義檔(普通模式是<span><span>Application<span>/<span>Common<span>/<span>Conf<span>/<span>tags<span>.<span>php<span>)</span></span></span></span></span></span></span> </span></span>載入框架底層語言套件(普通模式是</span></span>ThinkPHP </span>/Lang
  17. /
  18. zh-<span>cn</span>.php
  19. <span><span><span><span><span><span><span><span><span><span><span><span>應用程式編譯快取檔案</span></span></span></span></span> </span>載入偵錯模式系統設定檔(</span>ThinkPHP</span>/</span>Conf</span>/</span>debug</span>.php
  20. <span></span>預設是
  21. Application/<span>Common<span>/<span>Conf<span>/<span>debug<span>.<span>php<span>)<span><span><span><span> </span></span>判斷應用程式狀態並讀取狀態設定檔(如果</span> APP_STATUS</span>常數定義不為空的話)</span></span></span></span></span></span></span></span>檢測應用目錄結構並自動產生(如果CHECK_APP_DIR
  22. 配置且
  23. RUNTIMEPATHcom 呼叫ThinkApp類別的run方法啟動應用<span></span>綁定行為 判斷並載入動態設定和函數檔
  24. <span></span>呼叫Think
  25. Dispatcher
  26. ::dispatch<span>方法進行<span> <span><span><span><span>自動辨識相容<span> URL<span>模式和命令列模式下面的<span>$_SERVER</span>[</span>'PATH_INFO'</span>]參數</span></span></span></span></span></span>
  27. _APPo_APPol參數開啟)<span></span>分析URL地址中的PATH_INFO資訊
  28. 檢測模組是否存在和允許訪問
  29. <span><li><code><span>判斷並載入模組設定檔、別名定義、行為定義及函數檔</span>
  30. <span>判斷並載入模組的動態設定與函數檔</span>
  31. <span></span>模組的路由偵測(URL_ROUTER_ON開啟)
  32. <span><span><span> </span></span></span>
  33. URL 後綴檢測(<span>URL_DENY_SUFFIX<span>以及<span>URL_HTML_SUFFIX<span>處理)</span></span></span></span>
  34. <span><span><span><span><span>URL<span>請求調度完成(</span>url_dispatch</span>)標籤位偵聽並執行綁定行為</span></span></span></span>
  35. <span>應用程式開始(<span> <span>SESSION_OPTIONS </span>設定參數進行</span>Session</span>初始化(如果不是命令列模式)
  36. <span></span>根據請求執行控制器方法
  37. 根據請求執行控制器是否存在檢測。 <span></span>控制器開始(action_begin)標籤位元偵聽並執行綁定行為
  38. ache_cML<span></span>
  39. <span></span>判斷並調用控制器的
  40. _initialize
  41. 初始化方法<span></span>
  42. ,是否存在檢測方法
  43. 判斷前置操作方法是否定義,有的話執行<span></span>Action參數綁定檢測,自動匹配操作方法的參數
  44. 版)<span></span>視圖開始(
  45. view_begin
  46. )標籤位元偵聽並執行綁定行為<span></span>模版內容
  47. <span></span>
  48. 自動識別當前主題以及定位模版文件<span></span>
  49. 視圖(位綁定view_view_<span><span>) </span></span>預設調用內建
  50. ParseTemplate
  51. 行為解析模版(普通模式下面)<span></span>模版引擎解析模版內容後產生模版快取
  52. 綁化標籤並執行標籤並執行標籤(紙)。定行為<span></span>
  53. 預設呼叫系統的
  54. ContentReplace行為進行模版替換,綁定<span></span> 預設呼叫系統的WriteHtmlCache行為寫入靜態快取
  55. HTML_CACHE_ON
  56. 參數開啟)<span></span>
  57. 參數開啟) render方法輸出渲染內容<span></span>
  58. <span><span><span>視圖結束(</span>view_end</span>)標籤位偵聽並執行綁定行為</span>
  59. <span>控制器結束(</span>action_end)標籤位元偵聽並執行綁定行為
  60. <span></span>應用結束(執行系統的ShowPageTrace
  61. 行為(
  62. SHOW_PAGE_TRACE參數開啟且不是AJAX請求)<span></span>
  63. 存儲
  64. 代碼:<span><span><span>  1.入口文件(index.php)</span></span><pre class="brush:php;toolbar:false">// 检测PHP环境 if(version_compare(PHP_VERSION,'5.3.0','&lt;')) die('require PHP &gt; 5.3.0 !'); // 开启调试模式 建议开发阶段开启 部署阶段注释或者设为false define('APP_DEBUG',True); // 定义应用目录 define('APP_PATH','./Application/'); // 引入ThinkPHP入口文件 require './ThinkPHP/ThinkPHP.php'; </pre></span> 作用1.設定是否為調試模式(在調試模式下即  APP_DEBUG  為True 時候  不會載入上一次編譯過的  一個為~runtime.php  開發情況下調試模式)
  65.     2.定義APP_PATH 的路徑 <p>    3.也是最重要的一個  引入ThinkPHP的入口,這裡開始,正式開始進行複雜而又簡單的TP框架之旅了,沒有帶好裝備的人,可以帶上裝備,去刷TP框架了。 </p> <p>鄙人跟踪TP源碼,在不對TP進行任何修改的情況下介紹頁面是如何出現的</p> <p>( PS:  由於鄙人也是第一次學TP框架  同樣也是剛開始學PHP  希望在這裡寫上一點自己的心得  一來對自己思路做整理  同樣也希望能幫助大家   如果有什麼錯誤  希望大家提出)</p> <p> 以上就介紹了ThinkPHP32 載入過程(一),包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。 </p> <p> </p>
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn