ThinkPHP源碼閱讀1-------訪問流程

來源:互聯網
上載者:User

標籤:源碼閱讀   thinkphp源碼閱讀   

        ThinkPHP訪問流程在手冊1.11系統流程裡就有介紹,我閱讀的ThinkPHP的版本是3.1.3,大家可以看下手冊,基本的流程也有,現在就是詳細去介紹一下ThinkPHP的訪問流程.(偵錯模式下的,在部署模式下,會把中間的URL解析,檔案載入之類的,都封裝到一個檔案裡)

        1.入口檔案(index.php)

        入口檔案最常見得就是index.php,而在這裡可以定義項目名稱,路徑,快取檔案存放路徑之類的.最後要載入Thinkphp/ThinkPHP.php

       指向下一個檔案的地方是require ‘ThinkPHP/ThinkPHP.php‘;

        2.ThinkPHP/ThinkPHP.php

        這個檔案定義基本的系統目錄常量,架構引擎判斷,以及部署模式和偵錯模式的判斷

        指向下一個檔案的地方是 require THINK_PATH.‘Common/runtime.php‘;

        3.runtime.php(~runtime.php)

        PHP環境判斷,URL定義,項目目錄常量定義,核心檔案載入,項目目錄產生.

        指向下一個檔案的地方是Think::Start();

        4.Think.class.php

        錯誤方式定義,異常定義,設定自動載入,緩衝配置參數,語言參數等

        App::run();

        5.App.class.php

        設定時區,載入動態項目公用檔案和設定檔,一些系統常量的定義,如(IS_POST)等,POST,GET等傳值過濾,

        指向下一個檔案的地方是Dispatcher::dispatch();在App.class.php的第38行

        6.Dispatcher.class.php

        URL解析,擷取分組,模組,操作名,包括URL四種方式的詳細定義,URL路由都在這裡定義的.

        解析完成以後回到App.class.php並且執行App.exec

        7.App.class.php   App::exec

        執行應用程式,包括前置和後置操作執行,當前方法執行,以及空模組判斷,(如IndexAction.class.php等,就會在這裡直接執行)

        在執行IndexAction.class.php的時候,有extends繼承Action.class.php

        8.Action.class.php基類

         執行個體化視圖類 賦值,傳值給View,擷取Action,ajax判斷,這裡面的方法很多,值得仔細研究下.

        在調用assign,display,show等方法的時候,會到View中操作.

        9.View.class.php 視圖類

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

       執行下一檔案的方法  tag(‘view_parse‘,$params);在View.class.php View::fetch的方法中.

       10.  ParseTemplateBehavior.class.php   模板解析

          其實是對緩衝的判斷以及對採用哪種模板引擎去解析模板.

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

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

          這裡才是真正得模板解析,包括對系統標籤的解析,以及對自訂標籤的判斷,解析完成以後直接放入緩衝然後include  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.