<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 年 6 月 3 日 發布 RC3版本主要改進和優化了系統內置中間件,改進了一些用法和體驗,并且把不常用的驅動移出核心改為擴展方式提供。 ## 主要新特性 ### 增加`whereWeek`日期查詢 ~~~ // 查詢本周文章 Article::whereWeek('create_time')->select(); // 查詢上周文章 Article::whereWeek('create_time', 'last week')->select(); // 查詢2019-1-1到2019-1-7的文章 Article::whereWeek('create_time', '2019-1-1')->select(); ~~~ ### 自增ID獲取支持類型自動轉換 自增ID獲取的時候會根據主鍵的字段類型自動轉換處理,而不是PDO默認返回的字符串類型。 ### 當前請求記錄匹配路由規則 記錄當前請求的路由規則對象,可以通過 ~~~ $request->rule(); ~~~ 獲取當前請求實際匹配的路由規則對象 ### 增加`requireWithout`驗證規則 表示當某個字段沒有數據的時候必須,可以組合完成表單中某兩個字段必須填寫一項的驗證,例如: ~~~ 'phone' => 'requireWithout:mobile', 'mobile'=> 'requireWithout:phone', ~~~ 優化路由ext和name方法以及URL生成 ### 增加項目自定義類 取消了內置的`think\Controller`控制器基類,在項目中提供了`app\BaseController`控制器基類更方便自定義。 另外項目還提供了`app\Request`自定義請求類,可以自定義應用所需的請求方法和屬性。提供了`app\ExceptionHandle`自定義異常處理類 ,方便對異常進行自定義接管處理。 ### URL生成使用對象方式操作 Route類`buildUrl`及`url`助手函數返回類型改為`think\route\Url`對象實例而不是字符串,由于定義了`__toString`方法,因此可以在模板中直接輸出為URL字符串。 ~~~ echo url('index/hello',['name'=>'think'])->suffix('htm')->domain('blog'); ~~~ ### 修改器改進 改進修改器方法支持不返回任何數據,而是在修改器中直接設置數據 例如: ~~~ class User extends \think\Model { public function setField1Attr($value,$data){ $this->set('field2', $data['field2']); $this->set('field3', $data['field3']); } } $user = new User; $user->field1 = 'value1'; $user->save(); ~~~ 實際寫入數據庫的時候不會包含`field1`字段數據,但會包含`field2`和`field3`的數據。 ### `dump`/`halt`助手函數調整支持輸出多個變量 你可以使用 ~~~ dump($var1,$var2,...) ~~~ 方式輸出多個變量調試,同樣`halt`方法也可以支持調試多個變量輸出并中止執行。 最新版本會在安裝項目的時候安裝`symfony/var-dumper`擴展替換內置的`dump`助手函數,因此你可以進行更強大的輸出 ### 關聯自動更新 關聯`together`方法自動更新和刪除的時候可以無需使用`with ` 例如,之前的寫法 ~~~ $article = Article::with('comments')->find(1); $article->together(['comments'])->delete(); ~~~ 現在可以直接寫成 ~~~ $article = Article::find(1); $article->together(['comments'])->delete(); ~~~ ### 模型數據集增加`delete`和`update`方法 可以批量對數據集進行更新和刪除操作(支持模型事件) ~~~ // 更新今天的數據 $list = Article::whereDay('create_time')->select(); $list->update(['is_new'=>1]); // 刪除昨天的數據 $list = Article::whereDay('create_time', 'yesterday')->select(); $list->delete(); ~~~ ### 模型支持表后綴以及動態切換 ~~~ <?php namespace app\model; use think\Model; class Blog extends Model { // 定義默認的表后綴(默認查詢中文數據) protected $suffix = _cn'; } ~~~ 模型提供了動態切換方法`switch`和`setSuffix`,例如: ``` // switch方法用于靜態查詢 Blog::switch('_en')->find(); // setSuffix用于動態設置 $blog = new Blog($data); $blog->setSuffix('_en')->save(); ``` ### 注解路由支持給某個路由指定所屬分組 在注解中定義路由分組,可以使用 ~~~ <?php namespace app\controller; /** * @group('blog') */ class Blog { /** * @param string $name 數據名稱 * @return mixed * @route('hello/:name','get') */ public function hello($name) { return 'hello,'.$name; } } ~~~ 當前控制器中的注解路由會自動加入`blog`分組下面,最終,會注冊一個`blog/hello/:name`的路由規則。你一樣可以對該路由分組設置公共的參數,例如: ~~~ <?php namespace app\controller; /** * @group('blog')->ext('html') * ->pattern(['id' => '\d+', 'name' => '\w+']) * */ class Blog { /** * @param string $name 數據名稱 * @return mixed * @route('hello/:name','get') */ public function hello($name) { return 'hello,'.$name; } } ~~~ 如果你已經在路由定義文件中定義了`blog`分組,也可以直接把某個路由加入該分組,例如: ~~~ <?php namespace app\controller; class Blog { /** * @param string $name 數據名稱 * @return mixed * @route('hello/:name','get')->group('blog') */ public function hello($name) { return 'hello,'.$name; } } ~~~ ### 多語言支持分組定義 你可以在定義多語言的時候使用分組定義 ~~~ return [ 'user' => [ 'welcome' => '歡迎回來', 'login' => '用戶登錄', 'logout' => '用戶登出', ] ]; ~~~ 然后使用下面的方式獲取多語言變量 ~~~ Lang::get('user.login'); lang('user.login'); ~~~ ### 支持自定義加載語言文件 可以通過`extend_list`設置,例如: ~~~ 'extend_list' => [ 'zh-cn' => [ app()->getBasePath() . 'lang\zh-cn\app.php', app()->getBasePath() . 'lang\zh-cn\core.php', ], ] ~~~ 便于在擴展中自定義語言包 ,并且現在已經支持語言文件使用`YML`格式定義 ### 緩存標簽改進 增加`TagSet`類,`tag`方法支持傳入數組,同時對多個標簽進行操作 ~~~ Cache::tag('tag')->set('name1','value1'); Cache::tag('tag')->set('name2','value2'); // 清除tag標簽的緩存數據 Cache::tag('tag')->clear(); ~~~ 并支持同時指定多個緩存標簽操作 ~~~ Cache::tag(['tag1', 'tag2'])->set('name1', 'value1'); Cache::tag(['tag1', 'tag2'])->set('name2', 'value2'); // 清除多個標簽的緩存數據 Cache::tag(['tag1','tag2'])->clear(); ~~~ 可以追加某個緩存到標簽 ``` Cache::tag('tag')->append('name3'); ``` ### 緩存類增加`push`方法 增加元素到一個數組緩存 ``` Cache::set('name', [1,2,3]); Cache::push('name', 4); Cache::get('name'); // [1,2,3,4] ``` ### Cookie保存時間支持DateTimeInterface ### 增加表單令牌中間件 ### 控制器支持__call方法 ### 增加`deny_app_list`配置參數 可以配置禁止直接訪問的應用列表 ### 控制器中間件改進 控制器中間件的`only`和`except`定義不區分大小寫 ### `app_map`支持指定泛應用映射 可以在`app_map`配置中定義泛應用解析到指定應用,例如: ~~~ 'app_map' => [ 'think' => 'admin', // 把admin應用映射為think // ... 其它應用映射定義 '*' => 'home', // 其它應用解析到home ], ~~~ ## 問題修正 * 修正參數綁定的浮點型精度問題 * 修正軟刪除 * 修正模型的數據庫連接 * 修正`RedirectResponse ` * 修正Session類`flush`方法 * 修正JSON字段參數綁定 * 修正`make:controller`指令生成 * 修正Cache類的`get`方法默認值 * 修正域名綁定 * 修正關聯模型的動態獲取器 * 修正模型`dateFormat`屬性方法 * 修正url生成對多入口的支持 * 修正ini配置文件格式的布爾值轉換問題 * 修正路由延遲解析全局配置無效的問題 * 修正路由緩存問題 * 修正關聯`update`操作 * 修正`Relation::$selfRelation`默認為`null`,導致`Relation::isSelfRelation()`方法報錯 * 修正`redis`緩存驅動 * 修正事件智能訂閱`observe`方法 * 修正模型字段定義對日期查詢無效的問題 * 修正Console類`getNamespaces`方法 * 修正`where`查詢方法傳入Query對象的時候缺少`bind`數據的問題 * 修正request類`method`方法 * 修正`route:list`指令 * 修正`Collection`類`load`方法 * 修正`redis`驅動的端口類型 * 修正`session`數據序列化使用JSON處理的問題 * 修正分組路由合并解析 * 修正模型的`hidden`方法隱藏關聯模型的問題 * 修正關聯查詢關聯鍵為空的錯誤 * 修正返回204狀態碼的響應判斷 * 修正`Request`類`has`方法對`env`和`session`的支持 * 修正`provider.php`文件無效問題 * 修正關聯查詢的部分問題 * 修正`validate`助手函數支持指定驗證器類 * 修正驗證類`getValidateType`方法 * 修正入口單獨開啟調試模式 * 修正加載`Composer`應用 ## 用法調整 * 頁面`trace`中間件僅在調試模式有效 ,并且無需設置環境變量 * `Socket`日志驅動移出核心 * `PostgreSQL`、`Sqlite`和`SqlServer`驅動移出核心,改為擴展 * 取消內置`think\Controller`基類 * `Yaconf`支持移出核心 納入擴展`think-yaconf ` * 字段排除改為`withoutField`方法 * 取消`useGlobalScope`方法增加`withoutGlobalScope`方法 * 更改默認生成的中間件位置 * 加載默認語言包無需開啟多語言中間件 * `Cookie`類恢復`get`和`has`方法支持 * `token`助手函數調整 * 全局請求緩存參數調整 * 統一中間件調用傳參,不支持`:`分割傳參 * 緩存數據統一進行序列化后存儲 * `Cache`類`rm`方法更改為`delete`方法 * `validate`助手函數返回`Validate`對象實例而不是數據驗證 ## 廢棄用法 * 取消多語言的`auto_detect`配置 * 取消`session`類的`auto_start`配置參數和`boot`方法 * 廢棄`Where`數組對象查詢 * 取消模型事件觀察者 * 取消`JumpResponse`及`success`/`error`/`result`等方法和助手函數 * 取消表達式查詢解析擴展及`think\db\Expression`類 * 廢棄模型自動完成功能,使用模型事件替代 * 取消`cookie`的`prefix`參數 * 取消一系列不推薦使用的助手函數 * 取消`optimize:facade` `optimize:model`指令 改為擴展方式 * 取消命令行執行URL * 刪除`Config`類`__get` 和 `__isset` 方法
                  <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>

                              哎呀哎呀视频在线观看