欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

ThinkPHP源碼分析之核心類文件的加載

研究了下TP的加載機(jī)制,以下是我的一些總結(jié):

成都創(chuàng)新互聯(lián)于2013年開始,先為南昌縣等服務(wù)建站,南昌縣等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為南昌縣企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

1.首先由應(yīng)用入口文件index.php引入TP入口文件ThinkPHP.php

2.ThinkPHP.php里主要是定義一些系統(tǒng)常量,URL模式定義,系統(tǒng)信息等,然后加載核心類文件Think.class.php,這個類里定義了start方法,這個方法是系統(tǒng)加載的核心,ThinkPHP的核心函數(shù)和類文件加載,配置文件加載,字段映射加載,行為擴(kuò)展加載,運(yùn)行時日志等的生成,模塊目錄的生成等都在這個方法里有調(diào)用

3.start方法一開始定義注冊了自動加載方法,錯誤和異常處理的方法

// 注冊AUTOLOAD方法
spl_autoload_register('Think\Think::autoload'); 
// 設(shè)定錯誤和異常處理
register_shutdown_function('Think\Think::fatalError');
set_error_handler('Think\Think::appError');
set_exception_handler('Think\Think::appException');

然后是初始化文件的存儲方式

// 初始化文件存儲方式

Storage::connect(STORAGE_TYPE);這里TP里定義了本地存儲和sae環(huán)境下的存儲類

接著是核心類文件等的加載,TP里根據(jù)APP_MODEL判斷php的應(yīng)用模式,根據(jù)不同的模式加載對應(yīng)的核心文件,默認(rèn)是common模式,如果是api或sae模式,則加載Library/Model下對應(yīng)的核心文件,比如common.php,這里定義了系統(tǒng)要加載的核心配置文件,核心函數(shù),核心類,map映射,行為擴(kuò)展方法等。也就是說TP通過在對應(yīng)的模式文件下提前定義好要加載的核心配置文件等的路徑信息,然后循環(huán)進(jìn)行加載。

// 讀取應(yīng)用模式
$mode = include is_file(CONF_PATH.'core.php')?CONF_PATH.'core.php':MODE_PATH.APP_MODE.'.php';//這里判斷應(yīng)用模式,$model是一個數(shù)組,定義了配置文件,核心類文件等的路徑
// 加載核心文件
foreach ($mode['core'] as $file){
if(is_file($file)) {
include $file;
if(!APP_DEBUG) $content .= compile($file);//這里表示運(yùn)行模式下將引入的核心類文件內(nèi)容保存到~runtime.php文件里,這樣后面直接引入~runtime.php文件
}
}
// 加載應(yīng)用模式配置文件
foreach ($mode['config'] as $key=>$file){
is_numeric($key)?C(load_config($file)):C($key,load_config($file));
}
// 讀取當(dāng)前應(yīng)用模式對應(yīng)的配置文件
if('common' != APP_MODE && is_file(CONF_PATH.'config_'.APP_MODE.CONF_EXT))
C(load_config(CONF_PATH.'config_'.APP_MODE.CONF_EXT)); 
// 加載模式別名定義
if(isset($mode['alias'])){
self::addMap(is_array($mode['alias'])?$mode['alias']:include $mode['alias']);
}
// 加載應(yīng)用別名定義文件
if(is_file(CONF_PATH.'alias.php'))
self::addMap(include CONF_PATH.'alias.php');
// 加載模式行為定義
if(isset($mode['tags'])) {
Hook::import(is_array($mode['tags'])?$mode['tags']:include $mode['tags']);
}
// 加載應(yīng)用行為定義
if(is_file(CONF_PATH.'tags.php'))
// 允許應(yīng)用增加開發(fā)模式配置定義
Hook::import(include CONF_PATH.'tags.php');

4.調(diào)試模式下和非調(diào)試模式下的加載

這里非調(diào)試模式下,在Runtime目錄下會有一個~runtime.php的文件,打開會發(fā)現(xiàn)這個是經(jīng)過編譯后的源碼文件,里面包含核心配置文件,核心類,map映射等的源碼。也就是說在運(yùn)行模式下,TP會把加載的核心配置文件,核心類等的內(nèi)容保存到這個文件里,這樣每次直接調(diào)用~runtime.php文件相當(dāng)于把核心類等直接引入過來,加快了程序運(yùn)行的速度。



本文題目:ThinkPHP源碼分析之核心類文件的加載
網(wǎng)站URL:http://www.aaarwkj.com/article20/psoeco.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、網(wǎng)站改版、網(wǎng)站導(dǎo)航、網(wǎng)站營銷Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管
日韩免费色视频一区| 国产第一页国产第一页| 亚欧熟女乱色一二三区日韩| 亚洲日本香蕉视频观看视频| 中文字幕av在线有码| 国产伦精品一区二区三区免费视频 | 国产欧美日韩一级二级三级| 免费的黄色片带中文字幕| 欧美精品福利一区二区| 91制片国产在线观看| 男人的天堂av最新版本| 亚洲一区二区三区日韩欧美| 说中文字幕的黄色大网站| 国产精品传媒在线视频| 国产在线精品91系列| 亚洲人的av在线播放| 加勒比久草免费在线观看| 精精国产xxxx视频在线不卡| 亚洲国产精品有码专区| 国产亚洲精品视频免费| 欧美精品福利一区二区三区| 国产伦精品一区二区三区免费视频| 亚洲成人av综合在线| 91麻豆粉色视频在线| 国产午夜福利视频合集| 麻豆片免费观看在线看| 国产日韩欧美一区综合| 中文字幕乱码十国产乱码| 国产一区二区精品日韩| 中文岳妇荡欲丰满肥熟| 黄色av免费播放网站| 亚洲精品中文字幕日本乱码| 日本欧美国产污黄在线观看 | 久久精品高潮999久久久| 亚洲女人下体毛茸茸视频| 亚洲精品成人免费电影| 国产大学生露脸在线视频| 中国的性生活黄片免费观看| 久久这里只有精品热免费| 国产传媒免费在线播放| 国产精品国产三级丝袜|