From be84b0a892dd8771d3e06e925c516f342f1c3824 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=93=AD=E6=98=95?= Date: Mon, 15 Mar 2021 09:48:32 +0800 Subject: [PATCH] v2.1.10 (#3366) --- .github/workflows/test-components.yml | 2 +- .github/workflows/test.yml | 2 +- CHANGELOG-2.1.md | 11 +++++------ docs/zh-cn/changelog.md | 15 +++++++++++++++ docs/zh-hk/async-queue.md | 11 ++++++++++- docs/zh-hk/changelog.md | 15 +++++++++++++++ docs/zh-hk/db/mutators.md | 5 ++--- docs/zh-tw/async-queue.md | 11 ++++++++++- docs/zh-tw/changelog.md | 15 +++++++++++++++ docs/zh-tw/db/mutators.md | 5 ++--- 10 files changed, 76 insertions(+), 16 deletions(-) diff --git a/.github/workflows/test-components.yml b/.github/workflows/test-components.yml index 25f08102d..b4ca4c339 100644 --- a/.github/workflows/test-components.yml +++ b/.github/workflows/test-components.yml @@ -7,7 +7,7 @@ jobs: name: Test for Phar runs-on: 'ubuntu-latest' env: - SW_VERSION: '4.6.3' + SW_VERSION: '4.6.4' steps: - name: Checkout uses: actions/checkout@v2 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index f06119e70..bd7afdeec 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -11,7 +11,7 @@ jobs: os: [ ubuntu-latest ] php-version: [ '7.3', '7.4' ] mysql-version: [ '5.7', '8.0' ] - sw-version: [ '4.5.11', '4.6.3' ] + sw-version: [ '4.5.11', '4.6.4' ] max-parallel: 8 env: SW_VERSION: ${{ matrix.sw-version }} diff --git a/CHANGELOG-2.1.md b/CHANGELOG-2.1.md index a07be710b..ae6a12cbe 100644 --- a/CHANGELOG-2.1.md +++ b/CHANGELOG-2.1.md @@ -1,21 +1,20 @@ -# v2.1.10 - TBD +# v2.1.11 - TBD + +# v2.1.10 - 2021-03-15 ## Fixed - [#3348](https://github.com/hyperf/hyperf/pull/3348) Fixed bug that `Arr::forget` failed when the integer key does not exists. - [#3351](https://github.com/hyperf/hyperf/pull/3351) Fixed bug that `FormRequest` could't get the changed data from `Context`. - [#3356](https://github.com/hyperf/hyperf/pull/3356) Fixed bug that could't get the valid `uri` when using `Hyperf\Testing\Client`. -- [#3363](https://github.com/hyperf/hyperf/pull/3363) Fixed `constants` which defined in `bin/hyperf.php` does not works. +- [#3363](https://github.com/hyperf/hyperf/pull/3363) Fixed bug that `constants` which defined in `bin/hyperf.php` does not works for `server:start`. +- [#3365](https://github.com/hyperf/hyperf/pull/3365) Fixed bug that `pid_file` will be created accidently when you don't configure `pid_file` in coroutine style server. ## Optimized - [#3364](https://github.com/hyperf/hyperf/pull/3364) Optimized `phar:build` that you can run phar without `php`, such as `./composer.phar` instead of `php composer.phar`. - [#3367](https://github.com/hyperf/hyperf/pull/3367) Optimized code for guessing the return type for custom caster when using `gen:model`. -## Changed - -- [#3365](https://github.com/hyperf/hyperf/pull/3365) Shouldn't write pid to the file when `pid_file` is not configured for coroutine style server. - # v2.1.9 - 2021-03-08 ## Fixed diff --git a/docs/zh-cn/changelog.md b/docs/zh-cn/changelog.md index 38264b8b9..a153b84d4 100644 --- a/docs/zh-cn/changelog.md +++ b/docs/zh-cn/changelog.md @@ -1,5 +1,20 @@ # 版本更新记录 +# v2.1.10 - 2021-03-15 + +## 修复 + +- [#3348](https://github.com/hyperf/hyperf/pull/3348) 修复当使用 `Arr::forget` 方法在 `key` 为 `integer` 且不存在时,执行报错的问题。 +- [#3351](https://github.com/hyperf/hyperf/pull/3351) 修复 `hyperf/validation` 组件中,`FormRequest` 无法从协程上下文中获取到修改后的 `ServerRequest`,从而导致验证器验证失败的问题。 +- [#3356](https://github.com/hyperf/hyperf/pull/3356) 修复 `hyperf/testing` 组件中,客户端 `Hyperf\Testing\Client` 无法模拟构造正常的 `UriInterface` 的问题。 +- [#3363](https://github.com/hyperf/hyperf/pull/3363) 修复在入口文件 `bin/hyperf.php` 中自定义的常量,无法在命令 `server:watch` 中使用的问题。 +- [#3365](https://github.com/hyperf/hyperf/pull/3365) 修复当使用协程风格服务时,如果用户没有配置 `pid_file`,仍然会意外生成 `runtime/hyperf.pid` 文件的问题。 + +## 优化 + +- [#3364](https://github.com/hyperf/hyperf/pull/3364) 优化命令 `phar:build`,你可以在不使用 `php` 脚本的情况下执行 `phar` 文件,就像使用命令 `./composer.phar` 而非 `php composer.phar`。 +- [#3367](https://github.com/hyperf/hyperf/pull/3367) 优化使用 `gen:model` 生成模型字段的类型注释时,尽量读取自定义转换器转换后的对量类型。 + # v2.1.9 - 2021-03-08 ## 修复 diff --git a/docs/zh-hk/async-queue.md b/docs/zh-hk/async-queue.md index c5d85bed7..bd6fda713 100644 --- a/docs/zh-hk/async-queue.md +++ b/docs/zh-hk/async-queue.md @@ -1,6 +1,6 @@ # 異步隊列 -異步隊列區別於 `RabbitMQ` `Kafka` 等消息隊列,它只提供一種 `異步處理` 和 `異步延時處理` 的能力,並 **不能** 嚴格地保證消息的持久化和 **不支持** ACK 應答機制。 +異步隊列區別於 `RabbitMQ` `Kafka` 等消息隊列,它只提供一種 `異步處理` 和 `異步延時處理` 的能力,並 **不能** 嚴格地保證消息的持久化和 **不支持** 完備的 ACK 應答機制。 ## 安裝 @@ -517,3 +517,12 @@ return [ ]; ``` + + +## 異步驅動之間的區別 + +- Hyperf\AsyncQueue\Driver\RedisDriver::class + +此異步驅動會將整個 `JOB` 進行序列化,當投遞即時隊列後,會 `lpush` 到 `list` 結構中,投遞延時隊列,會 `zadd` 到 `zset` 結構中。 +所以,如果 `Job` 的參數完全一致的情況,在延時隊列中就會出現後投遞的消息 **覆蓋** 前面投遞的消息的問題。 +如果不想出現延時消息覆蓋的情況,只需要在 `Job` 裏增加一個唯一的 `uniqid`,或者在使用 `註解` 的方法上增加一個 `uniqid` 的入參即可。 diff --git a/docs/zh-hk/changelog.md b/docs/zh-hk/changelog.md index 6211be957..2d8477f49 100644 --- a/docs/zh-hk/changelog.md +++ b/docs/zh-hk/changelog.md @@ -1,5 +1,20 @@ # 版本更新記錄 +# v2.1.10 - 2021-03-15 + +## 修復 + +- [#3348](https://github.com/hyperf/hyperf/pull/3348) 修復當使用 `Arr::forget` 方法在 `key` 為 `integer` 且不存在時,執行報錯的問題。 +- [#3351](https://github.com/hyperf/hyperf/pull/3351) 修復 `hyperf/validation` 組件中,`FormRequest` 無法從協程上下文中獲取到修改後的 `ServerRequest`,從而導致驗證器驗證失敗的問題。 +- [#3356](https://github.com/hyperf/hyperf/pull/3356) 修復 `hyperf/testing` 組件中,客户端 `Hyperf\Testing\Client` 無法模擬構造正常的 `UriInterface` 的問題。 +- [#3363](https://github.com/hyperf/hyperf/pull/3363) 修復在入口文件 `bin/hyperf.php` 中自定義的常量,無法在命令 `server:watch` 中使用的問題。 +- [#3365](https://github.com/hyperf/hyperf/pull/3365) 修復當使用協程風格服務時,如果用户沒有配置 `pid_file`,仍然會意外生成 `runtime/hyperf.pid` 文件的問題。 + +## 優化 + +- [#3364](https://github.com/hyperf/hyperf/pull/3364) 優化命令 `phar:build`,你可以在不使用 `php` 腳本的情況下執行 `phar` 文件,就像使用命令 `./composer.phar` 而非 `php composer.phar`。 +- [#3367](https://github.com/hyperf/hyperf/pull/3367) 優化使用 `gen:model` 生成模型字段的類型註釋時,儘量讀取自定義轉換器轉換後的對量類型。 + # v2.1.9 - 2021-03-08 ## 修復 diff --git a/docs/zh-hk/db/mutators.md b/docs/zh-hk/db/mutators.md index 358c0f66e..f22a27984 100644 --- a/docs/zh-hk/db/mutators.md +++ b/docs/zh-hk/db/mutators.md @@ -267,9 +267,8 @@ class AddressCaster implements CastsAttributes { /** * 將取出的數據進行轉換 - * @return \App\Address */ - public function get($model, $key, $value, $attributes) + public function get($model, $key, $value, $attributes): Address { return new Address( $attributes['address_line_one'], @@ -377,7 +376,7 @@ use Hyperf\Utils\Arr; class UserInfoCaster implements CastsAttributes { - public function get($model, string $key, $value, array $attributes) + public function get($model, string $key, $value, array $attributes): UserInfo { return new UserInfo($model, Arr::only($attributes, ['name', 'gender'])); } diff --git a/docs/zh-tw/async-queue.md b/docs/zh-tw/async-queue.md index 4793ecde1..e4f2f6f7c 100644 --- a/docs/zh-tw/async-queue.md +++ b/docs/zh-tw/async-queue.md @@ -1,6 +1,6 @@ # 非同步佇列 -非同步佇列區別於 `RabbitMQ` `Kafka` 等訊息佇列,它只提供一種 `非同步處理` 和 `非同步延時處理` 的能力,並 **不能** 嚴格地保證訊息的持久化和 **不支援** ACK 應答機制。 +非同步佇列區別於 `RabbitMQ` `Kafka` 等訊息佇列,它只提供一種 `非同步處理` 和 `非同步延時處理` 的能力,並 **不能** 嚴格地保證訊息的持久化和 **不支援** 完備的 ACK 應答機制。 ## 安裝 @@ -517,3 +517,12 @@ return [ ]; ``` + + +## 非同步驅動之間的區別 + +- Hyperf\AsyncQueue\Driver\RedisDriver::class + +此非同步驅動會將整個 `JOB` 進行序列化,當投遞即時佇列後,會 `lpush` 到 `list` 結構中,投遞延時佇列,會 `zadd` 到 `zset` 結構中。 +所以,如果 `Job` 的引數完全一致的情況,在延時佇列中就會出現後投遞的訊息 **覆蓋** 前面投遞的訊息的問題。 +如果不想出現延時訊息覆蓋的情況,只需要在 `Job` 裡增加一個唯一的 `uniqid`,或者在使用 `註解` 的方法上增加一個 `uniqid` 的入參即可。 diff --git a/docs/zh-tw/changelog.md b/docs/zh-tw/changelog.md index b9465e5cf..d269d0173 100644 --- a/docs/zh-tw/changelog.md +++ b/docs/zh-tw/changelog.md @@ -1,5 +1,20 @@ # 版本更新記錄 +# v2.1.10 - 2021-03-15 + +## 修復 + +- [#3348](https://github.com/hyperf/hyperf/pull/3348) 修復當使用 `Arr::forget` 方法在 `key` 為 `integer` 且不存在時,執行報錯的問題。 +- [#3351](https://github.com/hyperf/hyperf/pull/3351) 修復 `hyperf/validation` 元件中,`FormRequest` 無法從協程上下文中獲取到修改後的 `ServerRequest`,從而導致驗證器驗證失敗的問題。 +- [#3356](https://github.com/hyperf/hyperf/pull/3356) 修復 `hyperf/testing` 元件中,客戶端 `Hyperf\Testing\Client` 無法模擬構造正常的 `UriInterface` 的問題。 +- [#3363](https://github.com/hyperf/hyperf/pull/3363) 修復在入口檔案 `bin/hyperf.php` 中自定義的常量,無法在命令 `server:watch` 中使用的問題。 +- [#3365](https://github.com/hyperf/hyperf/pull/3365) 修復當使用協程風格服務時,如果使用者沒有配置 `pid_file`,仍然會意外生成 `runtime/hyperf.pid` 檔案的問題。 + +## 優化 + +- [#3364](https://github.com/hyperf/hyperf/pull/3364) 優化命令 `phar:build`,你可以在不使用 `php` 指令碼的情況下執行 `phar` 檔案,就像使用命令 `./composer.phar` 而非 `php composer.phar`。 +- [#3367](https://github.com/hyperf/hyperf/pull/3367) 優化使用 `gen:model` 生成模型欄位的型別註釋時,儘量讀取自定義轉換器轉換後的對量型別。 + # v2.1.9 - 2021-03-08 ## 修復 diff --git a/docs/zh-tw/db/mutators.md b/docs/zh-tw/db/mutators.md index 56304a9ba..7ef61e979 100644 --- a/docs/zh-tw/db/mutators.md +++ b/docs/zh-tw/db/mutators.md @@ -267,9 +267,8 @@ class AddressCaster implements CastsAttributes { /** * 將取出的資料進行轉換 - * @return \App\Address */ - public function get($model, $key, $value, $attributes) + public function get($model, $key, $value, $attributes): Address { return new Address( $attributes['address_line_one'], @@ -377,7 +376,7 @@ use Hyperf\Utils\Arr; class UserInfoCaster implements CastsAttributes { - public function get($model, string $key, $value, array $attributes) + public function get($model, string $key, $value, array $attributes): UserInfo { return new UserInfo($model, Arr::only($attributes, ['name', 'gender'])); }