<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>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 項目編譯 [上一頁](17.html "上一頁")[下一頁](19.html "下一頁") 項目編譯機制作為ThinkPHP獨創的功能特色,從1.0版本就延續至今,編譯緩存的基礎原理是第一次運行的時候把核心需要加載的文件去掉空白和注釋后合并到一個文件中,第二次運行的時候就直接載入編譯緩存而無需載入眾多的核心文件,因為存在一個預編譯的過程,所以還會進行一些相關的目錄檢測,對于不存在的目錄可以自動生成,這個自動生成機制后面還會提到。當第二次執行的時候就會直接載入編譯過的緩存文件,從而省去很多IO開銷,加快執行速度。項目編譯機制對運行沒有任何影響,預編譯操作和目錄檢測機制只會執行一次,因此無論在預編譯過程中做了多少復雜的操作,對后面的執行沒有任何效率的缺失。3.0版本的項目編譯更是帶來了新的飛躍,包括: - 首先是合并了2.0體系的核心編譯緩存和項目編譯緩存,不再生成兩個緩存文件; - 其次是融合了之前ALLINONE模式,直接對本地環境生成設置和常量定義,減少環境判斷有效提升性能; - 更具特色的是新版的編譯緩存可以直接替換框架入口甚至網站入口,從某種程度來說,編譯后的框架甚至可以脫離框架核心獨立運行; - 還可以通過參數設置,生成的編譯緩存載入外部的常量定義文件,便于產品做用戶定義; 因為剛才我們并沒有開啟調試模式,所以第一次運行之后,除了已經自動生成目錄結構外,同時也已經生成了編譯緩存文件了。 編譯緩存文件默認生成在項目的Runtime目錄下面,我們可以在App/Runtime目錄下面看到有一個~runtime.php文件,這個就是編譯緩存文件。 如果你使用了模式擴展的話,編譯緩存文件名稱可能會有所變化,例如,如果你當前用的是REST模式,那么生成的編譯緩存文件則會變成~rest_runtime.php。 注意:環境改變后需要刪除編譯緩存文件,也就是說你不能把本地生成的編譯緩存拷貝到服務器或者其他環境直接使用。 編譯緩存的內容通常包括:系統函數庫、系統基礎核心類庫、核心或者擴展定義的核心行為類庫、項目配置文件、項目函數文件。如果希望自己設置目錄,可以在入口文件里面更改RUNTIME_PATH常量進行更改,例如:`define('RUNTIME_PATH','./App/temp/');`注意RUNTIME_PATH目錄必須設置為可寫權限。 除了自定義編譯緩存目錄之外,還支持自定義編譯緩存文件名,例如:`define('RUNTIME_FILE','./App/temp/runtime_cache.php');`接下來要展示一個新版編譯緩存的新特性,假如我們之前已經生成了App/Runtime/~runtime.php編譯緩存文件,現在我們進行入口文件替換,修改入口文件如下:`<?php<br class="calibre5"></br>//?替換入口文件為編譯緩存文件<br class="calibre5"></br>require?'./App/Runtime/~runtime.php';`再次執行后運行依然正常,這個時候其實入口已經被編譯緩存文件接管了,跳過了框架的入口文件ThinkPHP/ThinkPHP.php。 接下來,見證奇跡的時刻到來了^_^,我們把項目的入口文件index.php刪除,并且把編譯緩存文件拷貝到項目目錄下面,更名為index.php,再次執行運行正常,說明我們已經跳過了入口文件,直接以編譯緩存文件為項目運行入口了。 [上一頁](17.html "上一頁")[下一頁](19.html "下一頁")
                  <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>

                              哎呀哎呀视频在线观看