<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之旅 廣告
                SpeedPHP框架的架構設計遵循以下規則:MVC基礎,按需載入,直接驅動,擴展點執行。 MVC基礎架構 MVC(Model模型 - View視圖 - Controller控制器)的三層架構是SpeedPHP框架的核心架構,這是一個實踐證明了較為適合WEB系統開發的架構。 * M層以spModel類為父類,提供數據及業務相關操作的模型結構標準與功能。 * V層以PHP的模板引擎為基礎,提供業界通用的模板引擎功能。 * C層以spController類為父類,提供輕便的程序轉向執行功能。 MVC架構是面向對象編程的最佳實踐之一,通過對父類的繼承和覆蓋,將可讓SpeedPHP框架的MVC各部件更強大和更適合當前的應用程序。 同時,從軟件工程角度而言,MVC架構也較為適合軟件建模以及團隊開發。 按需載入 按需載入是SpeedPHP框架保持良好的運行速度的重要保證之一,應用程序啟動初期,框架將僅載入MVC核心架構和核心函數庫——包括了日常編程開發中80%的功能支持。余下的20%功能,將在程序需要的時候,才會搜索指定目錄來載入功能文件。 按需載入的理念保證了應用程序的功能和速度兩者的平衡。 直接驅動 在大部分的通用PHP框架中,對數據庫及模板引擎的支持,都是三層結構: 底層驅動(對數據庫或模板的原始操作)-> 抽象層(轉換表達式)-> 應用層(通用編程接口) 使用三層結構的主要原因有二: * 抽象層能夠方便地支持多種數據庫類型(模板引擎), * 應用層功能更多。 但在實際開發中,真正“經常”使用的數據庫接口功能(模板引擎功能)都是比較少的,不外乎是CRUD(查增改刪)等幾個簡化的操作以及復雜的SQL執行,呈現80/20的現象。也就是“開發者80%時間使用的功能,只占全部功能的80%。而有80%的功能,只有20%機會會使用到”。 另外,經過試驗也可以發現,其實在沒有抽象層的情況,支持多數據庫多模板引擎也并非難事。 綜上考慮,SpeedPHP框架去除了抽象層的設計:底層驅動 -> 應用層。在保證應用成提供了常用接口功能的前提下,底層驅動和應用層直接實現了原本抽象層才能做到的事情,當然,SpeedPHP框架的直接驅動,在一定程度上,減少了應用層的功能數量。 所以,一般來說,較復雜的數據庫及模板引擎功能,均建議直接使用數據庫句柄(SQL語句)和模板引擎對象來實現(這部分只會有20%機會出現)。 擴展點執行 SpeedPHP框架對第三方程序和類庫的支持,是通過直接調用和擴展功能來實現的。 直接調用指的是SpeedPHP框架的“按需載入”,通過框架提供的核心函數,開發者可以很方便地載入和使用第三方類庫和功能函數。 擴展功能是框架在保存精簡的前提下,實現更強大功能的模式之一。 擴展功能主要通過擴展點來實現,擴展點是多個分布在SpeedPHP框架不同關鍵位置的程序執行點,開發者可以方便地在應用程序設置中,控制和指示這些擴展點的執行,也就是可以自由地在擴展點中加入自己希望執行的代碼,以便達到更復雜的功能。 > 比如說在框架的路由系統中,存在著router_prefilter和router_postfilter兩個擴展點,分別代表了路由系統“執行前”和“執行后”的擴展。如spUrlRewrite擴展程序就是通過router_prefilter(執行前)的擴展,以URL偽靜態訪問為基礎,動態修改路由的訪問方向,以達到偽靜態轉向的功能。
                  <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>

                              哎呀哎呀视频在线观看