Added hyperf/config changed into 3.1 Upgrade guide (#6130)

This commit is contained in:
宣言就是Siam 2023-09-04 21:53:09 +08:00 committed by GitHub
parent e7a82ce706
commit 212370183b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 97 additions and 3 deletions

34
docs/en/upgrade/3.1.md Normal file
View File

@ -0,0 +1,34 @@
# 3.1 Upgrade Guide
- Version 3.1 mainly changes the minimum version of `PHP` to `8.1` and the minimum version of `Swoole` to `5.0`.
- Introduced `Pest` testing framework
- Added `hyperf/helper`, migrated `None namespace helper functions` from `Hyperf\Utils` to `hyperf/helper`.
- Change the way `hyperf/config` loads multi-level configuration files to support `. ` syntax, e.g., `config('a.c')`
## Utils package changes
The helper functions in the original utils package did not have namespaces added, and might conflict with functions in other composer packages, so they were removed and replaced in 3.1.
There are two ways to handle this
- If no other packages are introduced into the application, it will cause function conflicts, so you can install `hyperf/helper` directly, and the `helper` package provides helper functions without namespaces, which is the same as the original `utils` package.
- Namespaces are introduced where helper functions are called, and can be refactored using `rector` [refactoring docs here 🔎](https://github.com/orgs/hyperf/discussions/5635)
## Configuration file loading changes
In 3.0, configurations existed with `config file name` as the key, whereas in 3.1, `hyperf/config` multi-tier config files are loaded with `relative directory.Config file name` as the key.
Support for `. ` syntax, such as `config('a.c')`.
In this regard, it is important to note that the following two cases are handled in the original project
- 3.0 project has created a subdirectory in `config/autoload`, e.g. `config/autoload/sub/a.php`, the original `config('a')` needs to be changed to `config('sub.a')`.
- Configuration file names in 3.0 projects contain `. `, such as `config/autoload/a.b.php`, will return the following structure when using `config('a')`, and if you also have a `config/autoload/a.php` configuration file, you will also get the result after merging the configuration items.
```php
return [
'a.php config key' => 'a.php config value',
'b' => [
'a.b.php config key' => 'a.b.php config value',
]
];
```

View File

@ -3,6 +3,7 @@
- 3.1 版本主要修改了 `PHP` 最低版本为 `8.1``Swoole` 最低版本为 `5.0`
- 引入 `Pest` 测试框架
- 新增 `hyperf/helper``Hyperf\Utils` 中原有 `不包含命名空间助手函数` 迁移至 `hyperf/helper`
- 改变 `hyperf/config` 多层级配置文件的加载方式,支持 `.` 语法,如 `config('a.c')`
## Utils 包变动
@ -11,4 +12,23 @@
对此有俩种方式进行处理
- 程序中无引入其他包会导致函数冲突,可直接安装 `hyperf/helper` 即可,`helper` 包中提供不包含命名空间的助手函数,与原有 `utils` 中一致
- 原有调用到助手函数的地方引入命名空间,可使用 `rector` 进行重构 [重构文档点这里查看🔎](https://github.com/orgs/hyperf/discussions/5635)
- 原有调用到助手函数的地方引入命名空间,可使用 `rector` 进行重构 [重构文档点这里查看🔎](https://github.com/orgs/hyperf/discussions/5635)
## 配置文件加载方式变动
在 3.0 中,配置是以`配置文件名`作为键值存在, 而在 3.1 中,`hyperf/config` 多层级配置文件的加载方式,是以`相对目录.配置文件名`作为键值存在。
支持 `.` 语法,如 `config('a.c')`
对此需要注意原有项目中以下两种情况的处理
- 3.0项目中在`config/autoload`中创建了子目录,如`config/autoload/sub/a.php`,原有的`config('a')`需要修改为`config('sub.a')`。
- 3.0项目中的配置文件名中包含`.`,如`config/autoload/a.b.php`,会在使用`config('a')`的时候返回以下结构,如果你同时还存在`config/autoload/a.php`配置文件,还将得到合并配置项后的结果。
```php
return [
'a.php中的配置项' => 'a.php中的配置值',
'b' => [
'a.b.php中的配置项' => 'a.b.php中的配置值',
]
];
```

View File

@ -3,6 +3,7 @@
- 3.1 版本主要修改了 `PHP` 最低版本為 `8.1``Swoole` 最低版本為 `5.0`
- 引入 `Pest` 測試框架
- 新增 `hyperf/helper``Hyperf\Utils` 中原有 `不包含命名空間助手函數` 遷移至 `hyperf/helper`
- 改變 `hyperf/config` 多層級配置文件的加載方式,支持 `.` 語法,如 `config('a.c')`
## Utils 包變動
@ -11,4 +12,23 @@
對此有倆種方式進行處理
- 程序中無引入其他包會導致函數衝突,可直接安裝 `hyperf/helper` 即可,`helper` 包中提供不包含命名空間的助手函數,與原有 `utils` 中一致
- 原有調用到助手函數的地方引入命名空間,可使用 `rector` 進行重構 [重構文檔點這裏查看🔎](https://github.com/orgs/hyperf/discussions/5635)
- 原有調用到助手函數的地方引入命名空間,可使用 `rector` 進行重構 [重構文檔點這裏查看🔎](https://github.com/orgs/hyperf/discussions/5635)
## 配置文件加載方式變動
在 3.0 中,配置是以`配置文件名`作為鍵值存在, 而在 3.1 中,`hyperf/config` 多層級配置文件的加載方式,是以`相對目錄.配置文件名`作為鍵值存在。
支持 `.` 語法,如 `config('a.c')`
對此需要注意原有項目中以下兩種情況的處理
- 3.0項目中在`config/autoload`中創建了子目錄,如`config/autoload/sub/a.php`,原有的`config('a')`需要修改為`config('sub.a')`。
- 3.0項目中的配置文件名中包含`.`,如`config/autoload/a.b.php`,會在使用`config('a')`的時候返回以下結構,如果你同時還存在`config/autoload/a.php`配置文件,還將得到合併配置項後的結果。
```php
return [
'a.php中的配置項' => 'a.php中的配置值',
'b' => [
'a.b.php中的配置項' => 'a.b.php中的配置值',
]
];
```

View File

@ -3,6 +3,7 @@
- 3.1 版本主要修改了 `PHP` 最低版本為 `8.1``Swoole` 最低版本為 `5.0`
- 引入 `Pest` 測試框架
- 新增 `hyperf/helper``Hyperf\Utils` 中原有 `不包含名稱空間助手函式` 遷移至 `hyperf/helper`
- 改變 `hyperf/config` 多層級配置檔案的載入方式,支援 `.` 語法,如 `config('a.c')`
## Utils 包變動
@ -11,4 +12,23 @@
對此有倆種方式進行處理
- 程式中無引入其他包會導致函式衝突,可直接安裝 `hyperf/helper` 即可,`helper` 包中提供不包含名稱空間的助手函式,與原有 `utils` 中一致
- 原有呼叫到助手函式的地方引入名稱空間,可使用 `rector` 進行重構 [重構文件點這裡檢視🔎](https://github.com/orgs/hyperf/discussions/5635)
- 原有呼叫到助手函式的地方引入名稱空間,可使用 `rector` 進行重構 [重構文件點這裡檢視🔎](https://github.com/orgs/hyperf/discussions/5635)
## 配置檔案載入方式變動
在 3.0 中,配置是以`配置檔名`作為鍵值存在, 而在 3.1 中,`hyperf/config` 多層級配置檔案的載入方式,是以`相對目錄.配置檔名`作為鍵值存在。
支援 `.` 語法,如 `config('a.c')`
對此需要注意原有專案中以下兩種情況的處理
- 3.0專案中在`config/autoload`中建立了子目錄,如`config/autoload/sub/a.php`,原有的`config('a')`需要修改為`config('sub.a')`。
- 3.0專案中的配置檔名中包含`.`,如`config/autoload/a.b.php`,會在使用`config('a')`的時候返回以下結構,如果你同時還存在`config/autoload/a.php`配置檔案,還將得到合併配置項後的結果。
```php
return [
'a.php中的配置項' => 'a.php中的配置值',
'b' => [
'a.b.php中的配置項' => 'a.b.php中的配置值',
]
];
```