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

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                路由是應用開發中比較關鍵的一個環節,其主要作用包括但不限于: * 讓URL更規范以及優雅; * 隱式傳入額外請求參數; * 統一攔截并進行權限檢查等操作; * 綁定請求數據; * 使用請求緩存; * 路由中間件支持(`V5.1.6+`); >[danger] 由于采用了路由規則的批量匹配檢測算法,`V5.1.6+`版本開始,路由的解析性能大幅提升。 路由解析的過程一般包含: >[info] * 路由定義:完成路由規則的定義和參數設置(5.1的路由定義采用了對象化的思維,相對5.0而言更直觀); > * 路由檢測:檢查當前的URL請求是否有匹配的路由; > * 路由解析:解析當前路由實際對應的操作(方法或閉包); > * 路由調度:執行路由解析的結果調度(主業務邏輯); 掌握路由主要是要掌握路由定義及參數設置,其它環節是由系統自動完成的。 >[danger] 路由的主體規劃和定義應該盡可能在應用開發前完成,在后期可以進行路由的參數調整和規則增補。 路由僅針對PATHINFO方式的URL有效,`ThinkPHP5.1`的路由定義更加對象化,并且默認開啟路由(不能關閉),如果一個URL沒有定義路由,則采用默認的`PATH_INFO` 模式訪問URL: ~~~ http://serverName/index.php/module/controller/action/param/value/... ~~~ >[info] 在不使用路由的情況下,仍然可以通過操作方法的參數綁定、空控制器和空操作等特性實現URL地址的簡化(參考后面的請求->參數綁定章節)。 >[danger] `Route`類注冊使用`think\facade\Route`類靜態調用。 ## 強制路由 在`app.php`配置文件中設置 ~~~ 'url_route_must' => true, ~~~ 將開啟強制使用路由,這種方式下面必須嚴格給每一個訪問地址定義路由規則(**包括首頁**),否則將拋出異常。 首頁的路由規則采用`/`定義即可,例如下面把網站首頁路由輸出`Hello,world!` ~~~php Route::get('/', function () { return 'Hello,world!'; }); ~~~ ## 延遲解析 如果你定義了太多的路由,擔心影響性能,可以開啟路由的延遲解析功能,只需要在`app.php`配置文件中設置: ~~~ // 開啟路由延遲解析 'url_lazy_route' => true, ~~~ >[danger] 通過路由分組或者域名路由來定義路由才能發揮延遲解析的優勢。 一旦開啟路由的延遲解析,將會對定義的域名路由和分組路由進行延遲解析,也就是說只有實際匹配到該域名或者分組后才會進行路由規則的注冊,避免不必要的注冊和解析開銷。 >[info] 推薦的方式是開發模式下關閉延遲解析,部署后開啟并生成路由映射緩存。 >[danger] 開啟路由延遲解析后,將會導致你的URL生成無法準確識別路由規則的反解,但可以通過路由映射緩存指令(參考命令行章節的生成路由映射緩存一節)來解決。 ## 路由規則合并解析(`v5.1.6+`) 從`V5.1.6+`版本開始,路由規則支持合并解析,可以大大提升路由解析的性能。 可以在`app.php`文件中設置開啟全局合并規則, ~~~ // 開啟路由合并解析 'route_rule_merge' => true, ~~~ 或者在路由定義的時候對某個分組單獨開啟合并規則解析。 ~~~php Route::group('', function () { Route::rule('hello/:name','hello'); Route::rule('think/:name','think'); })->mergeRuleRegex(); ~~~ 這樣該分組下的所有路由規則無論定義多少個都只需要匹配檢查一次即可。 >[danger] `mergeRuleRegex`方法只能用于路由分組或者域名路由。 > ## 路由緩存(`V5.1.14+`) 從`V5.1.14+`版本開始,支持路由緩存功能,對于路由規則較多的應用可以大幅提升路由性能(僅部署模式有效)。 ~~~ // 開啟路由緩存 'route_check_cache' => true, ~~~ >[danger] 如果路由定義中,有某個路由規則的路由地址使用了閉包的方式,那么路由緩存將會失效。
                  <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>

                              哎呀哎呀视频在线观看