<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、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                `V6.0.3`版本終于更新發布了,本文總結下該版本的幾個關鍵更新和升級注意事項。 ## 主要更新 ### 事件機制不再支持關閉 由于事件機制對于擴展開發的重要性,如果關閉事件機制會導致開發擴展的復雜度加大,考慮到事件機制本身的開銷并不大,所以新版不再支持關閉事件機制,并廢棄了`Event`類的`withEvent`方法。 ### 嚴格按照定義順序執行路由的檢測 之前路由的檢測機制由于不同的請求類型的路由定義是分組存放的,而且所有的分組路由都是統一放到`any`請求類型下的,所以會導致在最終執行路由檢測的順序并非嚴格的定義順序,如果你存在同名的路由定義和分組,路由定義會優先檢測而不是按照路由定義的順序進行路由匹配檢測。例如存在下面的路由定義: ![](https://img.kancloud.cn/ee/5c/ee5c0318d4751ea59bedbb120a93e389_579x285.png) 之前的版本訪問`/api/test/service/my`?的話,輸出的是`aa`而不是`my`,改進了嚴格按照定義順序執行路由檢測后,輸出的結果就變成`my`。 此次更新對路由定義的存儲結構做了優化,確保嚴格按照定義順序來依次存儲,從而避免出現因為路由定義和檢測順序不一致的情況而產生的路由混亂。 ### 支持路由到自定義調度類 路由支持路由到一個自定義的路由調度類,從而實現更高級的自定義路由解析,此前你可能必須通過路由到閉包的方式實現自定義解析。 ~~~ // 路由到自定義調度類 Route::get('blog/:name',\app\route\BlogDispatch::class); ~~~ ~~~ namespace app\route; use think\route\Dispatch; use think\route\Rule; use think\Request; class BlogDispatch extends Dispatch { public function exec() { // 自定義路由調度 } } ~~~ 具體調度類的實現可以參考內置的幾個調度類的實現。 ### 取消調試模式下默認異常頁面的系統信息顯示 由于開啟調試模式后,默認的異常頁面中會顯示當前系統的環境變量等系統信息,有些用戶經常在正式環境中開啟調試模式,容易導致敏感信息的泄露而導致安全隱患。最新版本取消了默認異常頁面的系統變量的顯示,如果你在本地調試的時候需要查看這些信息可以自己在頁面Trace信息里面調試輸出。 ### 增加`Header`方式的多語言自動偵測 由于API更多使用`header`方式而不是`GET`或者`Cookie`,新版增加了對`header`方式自動檢測多語言的支持,并且優先級依次為`GET->header->Cookie`。 ### `Facade`類的IDE自動提示改進 由于之前的版本使用了`@mixin`注釋完成IDE的自動提示,但由于其它IDE以及`phpstorm`新版本不支持,所以仍然改成注釋的方式對系統內置Facade進行自動提示。 ### `ORM`調整 `think-orm`組件距離上一次框架版本發布以來已經有幾個小版本更新,最近的調整包括: * 改進`whereTime`查詢對`date`類型的支持 * 改進多對多關聯 * 改進一對一關聯的屬性綁定當關聯數據不存在的時候的數據格式的一致性 * 修正查詢緩存 * 原生查詢不再支持鏈式操作方法 ## 升級須知 雖然對于上個版本基本無縫升級,但如果你存在不規范的用法,那么升級過程中很有可能會遇到一些問題,尤其是使用原生查詢的情況下,主要是ORM的一些調整導致。 下面做個注意事項的總結: ### `connect`方法返回類型調整 此次`think-orm`庫更新后,Db類的`connect`方法返回類型變更為`Connection`接口而不是原來的`Query`對象(現在可以更方便的獲取當前的數據庫連接對象),所以你不能直接調用`Query`類的鏈式操作方法,必須首先調用`table`或者`name`方法指定查詢的數據表。所以下面的不規范用法就會報錯: ``` Db::field('name')->table('user')->find(1); ``` 規范的用法是 ``` Db::table('user')->field('name')->find(1); ``` ### `optimize:schema`指令改進 取消了`--db`選項,改用`--connection`選項指定使用的數據庫連接來生成,通過不同的數據庫的鏈接設置生成字段緩存更加合理。 ``` php think optimize:schema --connection mysql ``` 原來的數據庫字段緩存是用文件方式存放在`runtime/schema`目錄下,新版調整后,字段緩存直接納入系統的緩存機制,存放目錄則根據你的緩存設置不同而有所區別了。 ### 不要在模型中使用原生查詢 在模型類中使用原生查詢是不規范的,此次ORM的調整已經禁止在模型中調用原生查詢(包括調用`query`和`execute`方法)。 如果你需要在模型的業務方法中使用原生查詢,必須通過`Db`類執行。 ### `query`查詢不再支持查詢緩存 下面的用法不再支持: ``` Db::cache(100)->query('SELECT * FROM think_user where id= 1'); ``` >[danger] `cache`查詢緩存方法并沒有取消,只是不支持在`query`之前調用了 ### 原生查詢指定主庫查詢用法調整 原來的用法 ``` Db::master(true)->query('SELECT * FROM think_user where id= 1'); ``` 調整為: ``` Db::query('SELECT * FROM think_user where id= 1', [], true); ``` >[danger] `master`方法并沒有取消,只是不支持在`query`之前調用了 ### 存儲過程`procedure`方法廢棄 存儲過程方法`procedure`不再需要,直接使用`query`或者`execute`執行存儲過程語句即可。
                  <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>

                              哎呀哎呀视频在线观看