加載過程(官方介紹) :
<span>用戶<span>URL<span>請求</span></span></span>
<span>調用應用程式入口檔案(通常是網站的<span> <span><span><span>載入框架入口檔案( </span>ThinkPHP</span>.</span>php</span>)</span>
<span><span><span><span><span>記錄初始運行時間和記憶體開立</span></span> </span></span>載入框架引導類別(</span>Think
Think::<span>start</span>方法進行應用初始化
<span></span>
Storage 類別進行儲存初始化(由STORAGE_TYPE常數定義儲存類型)<span></span>常數定義儲存類型)
讀取應用模式(由<span>APP_MODE</span>常數定義)的定義檔(以下以普通模式為例說明)
<span><span><span> <span><span>ThinkPHP<span>/</span>Mode</span>/</span>common</span>.</span>php</span>)
<span><span><span> </span>ThinkPHP</span>/</span>Conf
/php)<span></span>
<span><span><span><span><span><span> /<span>config<span>.<span>php<span> )</span></span></span></span></span></span></span></span></span></span>
<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>
<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-<span>cn</span>.
php<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<span></span>
預設是/<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 呼叫ThinkApp類別的run方法啟動應用<span></span>類綁定行為 判斷並載入動態設定和函數檔
<span></span>呼叫
Thinkdispatch<span>方法進行<span> <span><span><span><span>自動辨識相容<span> URL<span>模式和命令列模式下面的<span>$_SERVER</span>[</span>'PATH_INFO'</span>]參數</span></span></span></span></span></span>
_APPol參數開啟)<span></span>分析URL地址中的PATH_INFO資訊
<span><li><code><span>判斷並載入模組設定檔、別名定義、行為定義及函數檔</span>
<span>判斷並載入模組的動態設定與函數檔</span>
<span></span>模組的路由偵測(URL_ROUTER_ON開啟)
<span><span><span> </span></span></span>
後綴檢測(<span>URL_DENY_SUFFIX<span>以及<span>URL_HTML_SUFFIX<span>處理)</span></span></span></span>
<span><span><span><span><span>URL<span>請求調度完成(</span>url_dispatch</span>)標籤位偵聽並執行綁定行為</span></span></span></span>
<span>應用程式開始(<span> <span>SESSION_OPTIONS </span>設定參數進行</span>Session</span>初始化(如果不是命令列模式)
<span></span>根據請求執行控制器方法
<span></span>控制器開始(action_begin)標籤位元偵聽並執行綁定行為
ache_cML<span></span>
<span></span>
判斷並調用控制器的<span></span>
判斷前置操作方法是否定義,有的話執行<span></span>Action
參數綁定檢測,自動匹配操作方法的參數版)<span></span>
視圖開始(<span></span>模版內容
<span></span>
<span></span>
<span><span>) </span></span>
預設調用內建<span></span>
模版引擎解析模版內容後產生模版快取綁化標籤並執行標籤並執行標籤(紙)。定行為<span></span>
行為進行模版替換,綁定<span></span> 預設呼叫系統的WriteHtmlCache
行為寫入靜態快取<span></span>
render方法輸出渲染內容<span></span>
<span><span><span>視圖結束(</span>view_end</span>)標籤位偵聽並執行綁定行為</span>
<span>控制器結束(</span>action_end
)標籤位元偵聽並執行綁定行為<span></span>應用結束(執行系統的
ShowPageTrace參數開啟且不是AJAX請求)<span></span>
代碼:<span><span><span> 1.入口文件(index.php)</span></span><pre class="brush:php;toolbar:false">// 检测PHP环境
if(version_compare(PHP_VERSION,'5.3.0','<')) die('require PHP > 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 開發情況下調試模式)<p> 3.也是最重要的一個 引入ThinkPHP的入口,這裡開始,正式開始進行複雜而又簡單的TP框架之旅了,沒有帶好裝備的人,可以帶上裝備,去刷TP框架了。 </p>
<p>鄙人跟踪TP源碼,在不對TP進行任何修改的情況下介紹頁面是如何出現的</p>
<p>( PS: 由於鄙人也是第一次學TP框架 同樣也是剛開始學PHP 希望在這裡寫上一點自己的心得 一來對自己思路做整理 同樣也希望能幫助大家 如果有什麼錯誤 希望大家提出)</p>
<p>
以上就介紹了ThinkPHP32 載入過程(一),包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。 </p>
<p>
</p>