<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 系統流程 [上一頁](# "上一頁")[下一頁](# "下一頁") 我們以訪問網址 http://serverName.com/index.php/User/read/id/8 為例,分兩種情況來解析下系統的執行流程,首先是調試模式下面的主要執行流程: <table border="0" cellspacing="1" cellpadding="0"><tr><th>序號</th> <th>流程說明</th> </tr><tr><td>1</td> <td>用戶訪問網站URL地址</td> </tr><tr><td>2</td> <td>調用項目的入口文件(這里是index.php)</td> </tr><tr><td>3</td> <td>載入系統入口文件ThinkPHP.php</td> </tr><tr><td>4</td> <td>判斷系統常量,如果沒有定義則自動生成</td> </tr><tr><br/><td>5</td> <td>載入系統運行時文件runtime.php并定義項目路徑常量</td> </tr><tr><td>6</td> <td>加載運行時所需的文件(通過調用load_runtime_file函數)</td> </tr><tr><td>7</td> <td>后面的流程和調試模式基本相同,只是模板編譯過程省略了</td> </tr><tr><td>8</td> <td>讀取核心基礎文件列表和加載系統別名定義文件</td> </tr><tr><td>9</td> <td>檢查項目相關目錄是否存在,不存在則自動生成</td> </tr><tr><td>10</td> <td>調用Think::start執行入口</td> </tr><tr><td>11</td> <td>設置異常和錯誤處理機制</td> </tr><tr><td>12</td> <td>注冊系統自動加載機制</td> </tr><tr><td>13</td> <td>預編譯當前項目</td> </tr><tr><td>14</td> <td>加載框架慣例配置文件</td> </tr><tr><td>15</td> <td>讀取當前的運行模式如果不是標準模式則加載模式的配置文件(如果存在)</td> </tr><tr><td>16</td> <td>加載模式和項目配置文件</td> </tr><tr><td>17</td> <td>加載框架底層語言包文件</td> </tr><tr><td>18</td> <td>加載當前模式的系統行為定義文件</td> </tr><tr><td>19</td> <td>加載當前模式的項目行為定義文件(如果存在)</td> </tr><tr><td>20</td> <td>讀取核心編譯文件列表</td> </tr><tr><td>21</td> <td>載入項目公共函數文件</td> </tr><tr><td>22</td> <td>加載模式和項目別名定義文件</td> </tr><tr><td>23</td> <td>加載系統調試模式配置文件</td> </tr><tr><td>24</td> <td>加載項目調試模式配置文件(如果存在)</td> </tr><tr><td>25</td> <td>執行當前模式的App::run();運行項目</td> </tr><tr><td>26</td> <td>如果定義了動態載入則載入動態項目配置文件和公共文件</td> </tr><tr><td>27</td> <td>URL調度,根據URL模式設置分析當前URL地址</td> </tr><tr><td>28</td> <td>URL路由檢測</td> </tr><tr><td>29</td> <td>獲取當前URL地址的分組、模塊和操作名?及其他參數并生成URL相關常量定義</td> </tr><tr><td>30</td> <td>如果檢測到分組,則加載分組的配置文件和公共文件</td> </tr><tr><td>31</td> <td>檢測模板主題并生成模板系統常量</td> </tr><tr><td>32</td> <td>設置SESSION_ID?開啟Session</td> </tr><tr><td>33</td> <td>根據分組和模塊名,定位到控制器類并且實例化</td> </tr><tr><td>34</td> <td>檢查并執行當前操作的前置方法</td> </tr><tr><td>35</td> <td>檢查當前模塊的_initialize方法</td> </tr><tr><td>36</td> <td>執行當前操作方法</td> </tr><tr><td>37</td> <td>調用控制器的Display方法輸出</td> </tr><tr><td>38</td> <td>定位當前操作方法的模板文件</td> </tr><tr><td>39</td> <td>調用模板引擎解析模板內容并生成模板編譯緩存文件</td> </tr><tr><td>40</td> <td>讀取模板緩存文件進行變量輸出,替換解析返回的內容中的需要替換的特殊字符串</td> </tr><tr><td>41</td> <td>生成表單令牌哈希</td> </tr><tr><td>42</td> <td>輸出模板內容到瀏覽器</td> </tr><tr><td>43</td> <td>如果開啟頁面Trace顯示則調用trace信息顯示</td> </tr><tr><td>44</td> <td>檢查并執行當前操作的后置方法</td> </tr><tr><td>45</td> <td>項目運行結束,記錄內存中的日志信息到文件</td> </tr></table> 如果在部署模式下面(假設已經生成項目編譯緩存),基本的系統流程是: | 序號 | 流程說明 | |-----|-----| | 1 | 用戶訪問網站URL地址 | | 2 | 調用項目的入口文件,如果替換了入口文件,則調用項目編譯緩存文件,并跳過下面的3、4、5流程,直接執行后面的流程。 | | 3 | 載入系統入口文件ThinkPHP.php | | 4 | 判斷系統常量,如果沒有定義則自動生成 | | 5 | 載入系統運行時文件runtime.php并定義項目路徑常量 | | 6 | 加載運行時所需的文件(通過調用load_runtime_file函數) | | 7 | 加載系統基礎函數庫文件common.php | 系統執行流程根據不同的設置、行為和模式影響,可能存在差異,并不一定完整。但是開啟頁面Trace功能后,你就可以比較直觀的看到當前的文件載入流程,能夠幫助你了解系統的執行流程,例如新版的blog示例在關閉調試模式下面一共加載了20個文件,列表如下:`[0]?=>?E:\www\App\Examples\Blog\index.php [1]?=>?E:\www\App\ThinkPHP\ThinkPHP.php [2]?=>?E:\www\App\Examples\Blog\Runtime\~runtime.php [3]?=>?E:\www\App\Examples\Blog\Lib\Behavior\CheckLangBehavior.class.php [4]?=>?E:\www\App\Examples\Blog\Lib\Action\BlogAction.class.php [5]?=>?E:\www\App\Examples\Blog\Lib\Action\PublicAction.class.php [6]?=>?E:\www\App\ThinkPHP\Lib\Core\Model.class.php [7]?=>?E:\www\App\ThinkPHP\Lib\Core\Db.class.php [8]?=>?E:\www\App\ThinkPHP\Lib\Driver\Db\DbMysql.class.php [9]?=>?E:\www\App\Examples\Blog\Runtime\Data\_fields\examples.Category.php [10]?=>?E:\www\App\Examples\Blog\Lib\Model\AdvModel.class.php [11]?=>?E:\www\App\Examples\Blog\Runtime\Data\_fields\examples.Blog.php [12]?=>?E:\www\App\Examples\Blog\Runtime\Data\_fields\examples.Comment.php [13]?=>?E:\www\App\Examples\Blog\Runtime\Data\_fields\examples.Tag.php [14]?=>?E:\www\App\Examples\Blog\Lib\Model\BlogViewModel.class.php [15]?=>?E:\www\App\Examples\Blog\Lib\Model\ViewModel.class.php [16]?=>?E:\www\App\Examples\Blog\Lib\Model\BlogModel.class.php [17]?=>?E:\www\App\Examples\Blog\Lib\Model\CategoryModel.class.php [18]?=>?E:\www\App\Examples\Blog\Lib\ORG\Page.class.php [19]?=>?E:\www\App\Examples\Blog\Runtime\Cache\2ab73b774a28fab5232b8c752b654018.php` [上一頁](# "上一頁")[下一頁](# "下一頁")
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看