ThinkPHP源碼閱讀1-------訪問(wèn)流程

        ThinkPHP訪問(wèn)流程在手冊(cè)1.11系統(tǒng)流程里就有介紹,我閱讀的ThinkPHP的版本是3.1.3,大家可以看下手冊(cè),基本的流程也有,現(xiàn)在就是詳細(xì)去介紹一下ThinkPHP的訪問(wèn)流程.(調(diào)試模式下的,在部署模式下,會(huì)把中間的URL解析,文件加載之類的,都封裝到一個(gè)文件里)

創(chuàng)新互聯(lián)是專業(yè)的蒙城網(wǎng)站建設(shè)公司,蒙城接單;提供成都網(wǎng)站制作、做網(wǎng)站、外貿(mào)營(yíng)銷網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行蒙城網(wǎng)站開發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!

        1.入口文件(index.php)

        入口文件最常見得就是index.php,而在這里可以定義項(xiàng)目名稱,路徑,緩存文件存放路徑之類的.最后要加載Thinkphp/ThinkPHP.php

       指向下一個(gè)文件的地方是require 'ThinkPHP/ThinkPHP.php';

        2.ThinkPHP/ThinkPHP.php

        這個(gè)文件定義基本的系統(tǒng)目錄常量,框架引擎判斷,以及部署模式和調(diào)試模式的判斷

        指向下一個(gè)文件的地方是 require THINK_PATH.'Common/runtime.php';

        3.runtime.php(~runtime.php)

        PHP環(huán)境判斷,URL定義,項(xiàng)目目錄常量定義,核心文件加載,項(xiàng)目目錄生成.

        指向下一個(gè)文件的地方是Think::Start();

        4.Think.class.php

        錯(cuò)誤方式定義,異常定義,設(shè)置自動(dòng)加載,緩存配置參數(shù),語(yǔ)言參數(shù)等

        App::run();

        5.App.class.php

        設(shè)置時(shí)區(qū),加載動(dòng)態(tài)的項(xiàng)目公共文件和配置文件,一些系統(tǒng)常量的定義,如(IS_POST)等,POST,GET等傳值過(guò)濾,

        指向下一個(gè)文件的地方是Dispatcher::dispatch();在App.class.php的第38行

        6.Dispatcher.class.php

        URL解析,獲取分組,模塊,操作名,包括URL四種方式的詳細(xì)定義,URL路由都在這里定義的.

        解析完成以后回到App.class.php并且執(zhí)行App.exec

        7.App.class.php   App::exec

        執(zhí)行應(yīng)用程序,包括前置和后置操作執(zhí)行,當(dāng)前方法執(zhí)行,以及空模塊判斷,(如IndexAction.class.php等,就會(huì)在這里直接執(zhí)行)

        在執(zhí)行IndexAction.class.php的時(shí)候,有extends繼承Action.class.php

        8.Action.class.php基類

         實(shí)例化視圖類 賦值,傳值給View,獲取Action,ajax判斷,這里面的方法很多,值得仔細(xì)研究下.

        在調(diào)用assign,display,show等方法的時(shí)候,會(huì)到View中操作.

        9.View.class.php 視圖類

         包括獲取IndexAction.class.php中定義的變量,以及解析模板,輸出模板等功能

       執(zhí)行下一文件的方法  tag('view_parse',$params);在View.class.php View::fetch的方法中.

       10.  ParseTemplateBehavior.class.php   模板解析

          其實(shí)是對(duì)緩存的判斷以及對(duì)采用哪種模板引擎去解析模板.

       在$tpl = Think::instance('ThinkTemplate');     在第62行

       11. ThinkTemplate.class.php     ThinkPHP的模板解析類

          這里才是真正得模板解析,包括對(duì)系統(tǒng)標(biāo)簽的解析,以及對(duì)自定義標(biāo)簽的判斷,解析完成以后直接放入緩存然后include 


網(wǎng)頁(yè)題目:ThinkPHP源碼閱讀1-------訪問(wèn)流程
網(wǎng)頁(yè)URL:http://www.muchs.cn/article28/ishgjp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)網(wǎng)站營(yíng)銷、品牌網(wǎng)站設(shè)計(jì)、全網(wǎng)營(yíng)銷推廣、網(wǎng)站制作、企業(yè)網(wǎng)站制作

廣告

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

外貿(mào)網(wǎng)站制作