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)核心類庫目錄
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ù)庫(common.php)
?//?加載系統(tǒng)基礎(chǔ)函數(shù)庫
????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();
二、值得說的編程小細(xì)節(jié):
//?為了方便導(dǎo)入第三方類庫?設(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'; 即可





