ThinkPHP3.1.3源碼分析(二) runtime.php
一、示例代碼
runtime.php 主要 3個(gè)部分, 1、定義系統(tǒng)目錄和項(xiàng)目目錄
//?路徑設(shè)置?可在入口文件中重新定義?所有路徑常量都必須以/?結(jié)尾 defined('CORE_PATH')????or?define('CORE_PATH',??????THINK_PATH.'Lib/');?//?系統(tǒng)核心類庫(kù)目錄 defined('EXTEND_PATH')??or?define('EXTEND_PATH',????THINK_PATH.'Extend/');?//?系統(tǒng)擴(kuò)展目錄 defined('MODE_PATH')????or?define('MODE_PATH',??????EXTEND_PATH.'Mode/');?//?模式擴(kuò)展目錄 //省略 defined('TEMP_PATH')????or?define('TEMP_PATH',??????RUNTIME_PATH.'Temp/');?//?項(xiàng)目緩存目錄 defined('DATA_PATH')????or?define('DATA_PATH',??????RUNTIME_PATH.'Data/');?//?項(xiàng)目數(shù)據(jù)目錄 defined('CACHE_PATH')???or?define('CACHE_PATH',?????RUNTIME_PATH.'Cache/');?//?項(xiàng)目模板緩存目錄
2、載入核心類和基礎(chǔ)函數(shù)庫(kù)(common.php)
?//?加載系統(tǒng)基礎(chǔ)函數(shù)庫(kù) ????require?THINK_PATH.'Common/common.php'; ????//?讀取核心文件列表 ????$list?=?array( ????????CORE_PATH.'Core/Think.class.php', ????????CORE_PATH.'Core/ThinkException.class.php',??//?異常處理類 ????????CORE_PATH.'Core/Behavior.class.php', ????); ????//?加載模式文件列表 ????foreach?($list?as?$key=>$file){ ????????if(is_file($file))??require_cache($file); ????}
3、創(chuàng)建項(xiàng)目目錄
if(!is_dir(LIB_PATH))?{ ????????//?創(chuàng)建項(xiàng)目目錄結(jié)構(gòu) ????????build_app_dir(); ????} ????/*Runtime目錄不存在則重新創(chuàng)建Runtime目錄*/ ????elseif(!is_dir(CACHE_PATH)){ ????????//?檢查緩存目錄 ????????check_runtime(); ????}elseif(APP_DEBUG){ ????????//?調(diào)試模式切換刪除編譯緩存 ????????if(is_file(RUNTIME_FILE))???unlink(RUNTIME_FILE); ????}
最后就是調(diào)用 Think.class.php 中的
?Think::Start();
二、值得說(shuō)的編程小細(xì)節(jié):
//?為了方便導(dǎo)入第三方類庫(kù)?設(shè)置Vendor目錄到include_path set_include_path(get_include_path()?.?PATH_SEPARATOR?.?VENDOR_PATH);
舉例: some.class.php 在 ?/a/b/c/include 目錄下
那么在 引入類文件 include '/a/b/c/include/some.class.php';
如果定義了 ?set_include_path('/a/b/c/include');
只需 include 'some.class.php'; 即可