<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國際加速解決方案。 廣告
                ### 2019 年 10 月 13 日 發布 ThinkPHP最新的`6.0`版本原計劃于國慶左右發布,由于國慶期間本著核心精簡的原則對多應用模式做了一些調整,為了避免可能的問題還需要做更充分的測試,加上新版框架的安全審計工作仍然還在繼續,所以在計劃之外額外發布了一個`RC5`積累更新版本,正式版本的發布日期推遲到10月24日。 >[danger] 官方本著認真和嚴謹的態度對待此次ThinkPHP`6.0`的發布工作,我們希望交付給開發者的新版是一個更好用而且架構穩定的版本,相信這是一個值得等待的框架。 下面是`RC5`版本自`RC4`之后的主要更新,基本上不影響之前版本的升級,并且官方完全開發手冊的內容已經同步更新。 ## 多應用模式調整 鑒于多應用模式的復雜性和擴展性考慮,最新版本把多應用模式獨立為框架的一個全局中間件擴展。默認安裝后核心框架為單應用模式,如果需要使用多應用模式,可以安裝 ``` composer require topthink/think-multi-app ``` 安裝后會自動注冊一個全局中間件并優先執行,就可以自動支持多應用模式,無需做任何的配置調整。如果需要進行應用映射或者域名綁定的話,仍然設置`app_map`以及`domain_bind`即可。 如果你的入口文件是`index.php`的話,會自動開啟自動多應用模式。如果你的入口文件是其它,例如`admin.php`或者`api.php`則會自動綁定`admin`或者`api`應用,當然,如果你在入口文件中已經使用`name`方法綁定了應用,則優先。 另外,如果是自動多應用模式下,URL里面的應用不存在,會自動處理為單應用解析,也就是說多應用和單應用是可以在新版的架構下共存。舉個例子,當我們訪問下面的URL: ``` http://tp.com/think ``` 假設`think`應用并不存在(也沒有定義任何的應用映射),當我們訪問上面的地址的時候會自動進行單應用解析,也就是說如果有定義全局路由(例如`route/route.php`)的話 ``` Route::get('think', function () { return 'hello,ThinkPHP!'; }); ``` 頁面會輸出 ~~~ hello,ThinkPHP! ~~~ 這樣設計的初衷是為了更加方便擴展注冊全局路由,避免在開啟多應用模式的情況下注冊的全局路由失效(比如之前的驗證碼擴展只能用于單應用模式,多應用模式需要單獨注冊路由)。 如果你完全不需要單應用模式,也可以設置使用嚴格的多應用模式 ``` 'app_express' => true, 'default_app' => 'home', ``` 當我們再次訪問 ``` http://tp.com/think ``` 的時候,其實是訪問默認(`home`)應用的`think`路由。 ## 中間件機制改進 由于多應用擴展獨立后,中間件機制也隨之進行了一些優化和調整,現在中間件大致分為四個組,包括全局中間件、應用中間件、路由中間件和控制器中間件,每個中間件組彼此獨立按順序運行。 在`app/middleware.php`文件里面定義的中間件即為全局中間件,執行優先級最高(相對于前置中間件而言),如果使用了多應用模式,并且在應用目錄下也定義了`middleware.php`文件,即為應用中間件,執行優先級僅次于全局中間件。 如果在路由注冊的時候定義了中間件即為路由中間件,注意,在路由中間件執行之前是獲取不到當前應用的控制器和操作名的(所以,全局中間件和應用中間件執行的過程中是無法獲取控制器和操作名的),如果你不想在路由注冊的時候定義中間件,還有一個額外的辦法,就是在路由配置文件(包括全局路由配置和應用路由配置)中定義`middleware`參數,無論是否匹配路由都會執行,類似于全局路由中間件的概念。 ~~~ 'middleware' => [ app\middleware\Auth::class, app\middleware\Check::class, ], ~~~ ## 中間件調度優化 中間件的執行流程改進,`think\middleware`僅僅負責中間件的管理和調度,增加`think\Pipeline`類負責中間件的執行。并支持控制中間件的執行順序。中間件配置文件的格式做了一些調整,除了定義中間件別名外,增加了執行優先級設置。 ``` return [ // 別名或分組 'alias' => [ ], // 優先級設置,此數組中的中間件會按照數組中的順序優先執行 'priority' => [ ], ]; ``` ## 中間件`end`回調 中間件增加`end`回調,如果在中間件類中有定義`end`方法,則會在請求結束后統一調用。 ``` public function end(Response $response) { } ``` ## 中間件執行去重 對于每個分組的中間件,會進行強制去重操作,也就是說在一個分組中的中間件只可能執行一次。 ## 模板目錄自動識別 模板目錄無需再進行任何的配置,取消了`view_base`配置,改為自動識別,應用目錄下的`view`目錄優先,如果不存在,則會使用應用根目錄下的`view`目錄。如果要單獨定義某個應用的模板目錄,則使用`view_path`配置參數定義即可。 ## 事件智能訂閱改進 事件智能訂閱的時候不再需要事先注冊和定義事件,采用反射機制自動識別訂閱事件。 ## 應用名獲取調整 多應用模式改成擴展后,核心已經完全解耦了多應用相關的方法和屬性,所以如果你需要獲取當前的應用名,需要改成 ``` app('http')->getName(); ``` 對于使用中間件進行權限控制用途的,官方的建議是采用`pathinfo`地址進行權限判斷。 ## `think-swoole`擴展更新 `think-swoole`擴展也在持續更新和完善,現在已經支持數據庫和緩存的連接池功能,以及RPC功能。 ## 調試工具更新 原來內置的頁面Trace調試工具已經更改為擴展的方式,改成安裝[`think-trace`](https://github.com/top-think/think-trace)擴展,如果通過composer安裝應用的話,默認會安裝`topthink/think-trace`擴展,或者直接安裝。 ``` composer require topthink/think-trace ``` >[danger] 原核心內置的`TraceDebug`中間件不再使用,請在中間件定義文件中注釋掉。 基本用法和之前保持不變,但無需額外配置,默認使用`html`方式顯示,同時仍然支持瀏覽器控制臺顯示,并僅在調試模式下有效。 同時增加了一個基于[`debugbar`](http://phpdebugbar.com/)的調試擴展[`think-debugbar`](https://github.com/top-think/think-debugbar),需要單獨安裝后才能使用。 ``` composer require topthink/think-debugbar ``` ## 關于官網的升級重構 最后一個是關于官網的消息,為了迎接新版的發布,ThinkPHP官網這次終于要更新了。官方計劃在本月對舊版(史前)官網進行ThinkPHP`6.0`的升級重構,同時改進用戶體驗和手機閱讀體驗。
                  <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>

                              哎呀哎呀视频在线观看