mirror of
https://gitee.com/hyperf/hyperf.git
synced 2024-12-04 12:47:55 +08:00
88cf34b2e8
Co-authored-by: 李铭昕 <715557344@qq.com>
35 KiB
35 KiB
版本更新記錄
v3.0.39 - 2023-10-13
新增
- #6188 為
Redis
的 options 配置增加 string 類型 key 支持。 - #6193 為
Swow
服務增加 HTTP 和 WebSocket 雙協議端口支持。 - #6198 為
hyperf/tracer
組件增加RpcAspect
用以替代JsonRpcAspect
。 - #6200 為
hyperf/tracer
組件增加ElasticserachAspect
和CoroutineAspect
的開關。 - #6203 為
hyperf/tracer
組件增加Hyperf\Tracer\Aspect\GrpcAspect
。 - #6207 為
kafka
組件增加exception_callback
配置。
v3.0.38 - 2023-10-05
修復
- #6183 修復使用單測組件時,中間件權重無法正常使用的問題。
- #6185 修復使用
socketio-server
時,cleanUpExpiredOnce
當sids
為空時,無法正常使用的問題。
優化
- #6177 使
hyperf/codec
組件Base62
工具類,可以更加便捷的被繼承重寫。
v3.0.37 - 2023-09-22
新增
- #6156 為
stringable
組件增加了Str::replaceStart()
等方法。
優化
- #6154 在使用驗證器組件時,如果原生方法
json_validate
存在,則使用其進行Json
格式驗證。 - #6157 在使用
trace
組件時,只記錄打開記錄異常開關,並且不在忽略列表中的信息。
修復
- #6160 修復當設置配置
services.enable.register
為false
時,仍然會發布服務到服務中心的問題。 - #6162 修復使用
Crontab
的時,當執行任務超過默認超時時間後,則不能很好的進行控制任務運行時機的問題。
v3.0.36 - 2023-09-15
新增
優化
- #6151 優化
hyperf/kafka
組件中FailToConsume
的觸發時機。
修復
v3.0.35 - 2023-09-01
修復
- #6097 修復使用非
zipkin
的tracer
組件時,會出現報錯的問題。 - #6099 修復使用
Redis
時,恆定頻率釋放鏈接模式無法正常使用的問題。 - #6110 修復使用
Nacos GRPC
的配置中心時,多進程模式無法正常工作的問題。
新增
- #6096 為
Crontab
組件中的事件增加getThrowable
方法。 - #6094 新增驗證器規則
ExcludeIf
File
ImageFile
和ProhibitedIf
。 - #6112 為
Hyperf\Kafka\Producer
增加sendAsync
和sendBatchAsync
兩個新方法。
優化
- #6098 優化
hyperf/tracer
kafka
上報器,增加其穩定性。 - #6100 優化
hyperf/tracer
HTTP
上報器,增加其性能和穩定性。 - #6108 優化命令
describe:routes
,展示排序後的中間件。 - #6111 為
tracer
上報器,增加日誌輸出能力。
v3.0.34 - 2023-08-25
新增
- #6060 為
tracer
組件增加request.uri
標籤。 - #6063 為
Request
相關事件,增加服務名參數$server
。 - #6070 為組件
hyperf/rpc-multilex
增加php_serialize
協議。 - #6069 #6075 為組件
hyperf/tracer
增加kafka
上報器。 - #6078 新增方法
Hyperf\Support\Composer::hasPackage()
。 - #6083 #6084 支持中間件排序功能。
修復
- #6065 修復方法
Context::override
和Context::getOrSet
沒法對指定協程 ID 使用的問題。
優化
- #6046 從協程上線文中讀取
tracer
實例。 - #6061 為
server
配置,增加key-value
模式的支持。 - #6077 當使用
#[Hyperf\Constants\Annotation\Constants]
時,避免IDE
觸發deprecated
警告。
v3.0.33 - 2023-08-18
修復
- #6011 修復
invocable
控制器路由無法正常使用驗證器的BUG。 - #6013 修復
no_aspect
會被覆蓋的問題。 - #6053 修復方法
Arr::has
時,Interger
類型參數會導致報錯的問題。
優化
即將廢棄
- #6044 設置
Hyperf\Coroutine\Traits\Container
為即將廢棄。
v3.0.32 - 2023-08-09
新增
- #5996 允許
tracer
切入GuzzleHttp\Client::request()
方法,進行數據記錄。
修復
- #6004 修復在使用
Command
時,拋出異常後,命令行退出碼不合規的問題。
v3.0.31 - 2023-07-27
修復
- #5969 修復使用
Str::contains
時,如果$needles
為[null]
則會導致判斷錯誤的問題。 - #5970 修復使用
Str::startsWith
和Str::endsWith
時,如果$needles
為[null]
則會導致判斷錯誤的問題。
新增
- #5971 新增方法
Str::containsIgnoreCase()
可以在不區分大小寫的情況下,用來判斷是否是包含關係。
v3.0.30 - 2023-07-21
修復
- #5947 修復使用
amqp
時,存在多個配置時,協程鎖失效的問題。
優化
- #5954 優化模型生成器,使其生成正確的參數註釋。
新增
- #5951 為
Session
的Cookies
功能增加SameSite
支持。 - #5955 為
Nacos
服務註冊與發現,增加access_key
和access_secret
的支持。 - #5957 新增
Hyperf\Codec\Packer\IgbinarySerializerPacker
。 - #5962 當使用測試組件時,增加支持修改子協程上下文的能力。
v3.0.29 - 2023-07-14
修復
- #5921 修復
http2-client
在沒有開啓心跳時,無法正常關閉的問題。 - #5923 修復
nacos grpc client
當進程退出時,無法友好關閉的問題。 - #5922 修復使用
grpc-client
時,會找不到ApplicationContext
的問題。
優化
- #5924 當進程退出時,隱藏
nacos grpc client
相關的正常的錯誤信息。
v3.0.28 - 2023-07-08
修復
- #5909 修復
ACM
配置中心因client::$servers
沒有進行初始化而報錯的問題。 - #5911 修復
Nacos Grpc 客户端
權限驗證失敗的問題。 - #5912 修復
Nacos Grpc 客户端
在Nacos 服務
重啓後,重連失敗的問題。
新增
- #5895 為驗證器規則
Integer
和Boolean
增加嚴格模式。
優化
- #5910 優化工廠類
NacosClientFactory
,使其實例化NacosClient
而非Nacos Application
對象。
v3.0.27 - 2023-06-30
修復
優化
- #5886 當使用
hyperf/db
連接clickhouse
時,如果SQL
執行錯誤,則會拋出異常。
v3.0.26 - 2023-06-24
修復
- #5861 修復緩存組件中,使用
CoroutineMemory
時,CoroutineMemory::clearPrefix()
無法正常工作的問題。
優化
- #5858 當調用數據庫組件中
chunkById
時,如果Id
為Null
,則拋出異常。
v3.0.25 - 2023-06-19
修復
- #5829 修復
Hyperf\Database\Model\Builder::value()
當使用形如table.column
的字段時,無法正常使用的問題。 - #5831 修復在特殊場景下
socket.io
組件在解析namespace
時,會造成死循環的問題。
v3.0.24 - 2023-06-10
修復
- #5794 修復代理類中
__FILE__
和__DIR__
定位錯誤的問題。 - #5803 修復組件
hyperf/http-server
不適配新版本Psr7
的問題。 - #5808 修復驗證器規則
le
、lte
、gt
、gte
不會正常比較numeric
和string
。
優化
- #5789 支持高版本
psr/http-message
。 - #5806 優化 Swow 服務,默認情況下合併通用配置。
- #5814 增加方法
build_sql
,在拋出異常QueryException
時,可以快速的構建SQL
.
v3.0.23 - 2023-06-02
新增
修復
- #5782 修復
prometheus
無法正常收集histograms
的問題。
優化
- #5768 為
Hyperf\Command\Annotation\Command
組件增加參數支持。 - #5780 修復
Zipkin\Propagation\Map
中String
類型檢測錯誤的問題。
v3.0.22 - 2023-05-27
新增
優化
- #5741 為
Hyperf\DB\MySQLConnection
增加即將過期的標籤。 - #5702 優化了
Hyperf\Metric\Adapter\Prometheus\Redis
的代碼,使其允許被重寫KEY
鍵前綴。 - #5762 自定義進程默認使用非阻塞模式。
v3.0.21 - 2023-05-18
新增
- #5721 為
Request
生命週期事件,增加exception
參數。 - #5723 為
hyperf/db
組件增加Swoole5.x
的PgSQL
支持。 - #5725 為
hyperf/db
組件增加Swoole4.x
的PgSQL
支持。 - #5731 新增方法
Arr::hasAny()
。
修復
優化
- #5718 優化了
view-engine
組件的代碼,並增加了一些單元測試。 - #5719 優化了
metric
組件的代碼,並增加了一些單元測試。 - #5720 優化了
Hyperf\Metric\Listener\OnPipeMessage
的代碼,來避免消息阻塞的問題。
v3.0.20 - 2023-05-12
新增
修復
優化
- #5716 為協程風格服務增加超全局變量的支持。
v3.0.19 - 2023-05-06
修復
新增
- #5680 為
rpc-multiplex
增加存儲RPC
上下文的能力。 - #5695 為數據庫遷移組件,增加設置
datetime
類型的創建時間和修改時間的功能。 - #5699 增加
Model::resolveRelationUsing()
,用來動態創建模型關係。
優化
- #5694 將
hyperf/utils
從hyperf/rpc
組件中移除。 - #5696 使用
Hyperf\Coroutine\Coroutine::sleep()
替代Swoole\Coroutine::sleep()
。
v3.0.18 - 2023-04-26
新增
- #5672 將部分
utils
中的方法,複製到hyperf/support
組件中,並增加對應的命名空間。
修復
- #5662 修復
pgsql-swoole
執行失敗時,無法拋出異常的問題。
優化
- #5660 將
hyperf/codec
從hyperf/utils
分離出來。 - #5663 將
hyperf/serializer
從hyperf/utils
分離出來。 - #5666 將
Packers
從hyperf/utils
分離到hyperf/codec
中。 - #5668 將
hyperf/support
從hyperf/utils
分離出來。 - #5670 將
hyperf/code-parser
從hyperf/utils
分離出來。 - #5671 使用
Hyperf\Coroutine\Channel\Pool
代替Hyperf\Utils\ChannelPool
。 - #5674 將
Hyperf\Utils
命名空間的類和方法,使用新組件進行替換。
v3.0.17 - 2023-04-19
修復
- #5642 修復使用批量讀取模型緩存時,遇到不存在的數據時,無法初始化空緩存的問題。
- #5643 修復使用批量讀取模型緩存時,空緩存無法正常使用的問題。
- #5649 修復協程風格下,無法初始化數據庫字段收集器的問題。
新增
- #5634 新增助手函數
Hyperf\Stringable\str()
。 - #5639 新增方法
Redis::pipeline()
和Redis::transaction()
。 - #5641 為模型緩存
loadCache
增加嵌套初始化緩存的能力。 - #5646 增加
PriorityDefinition
類,來處理容器dependencies
優先級的問題。
優化
- #5634 使用
Hyperf\Stringable\Str
替代Hyperf\Utils\Str
。 - #5636 優化
kafka
消費者,啓動時等待消費過長的問題。 - #5648 將依賴
hyperf/utils
從hyperf/guzzle
中移除。
v3.0.16 - 2023-04-12
修復
- #5627 修復方法
Hyperf\Context\Context::destroy
支持協程下調用。
優化
- #5616 將
ApplicationContext
從hyperf/utils
分離到hyperf/context
。 - #5617 將
hyperf/guzzle
從hyperf/consul
依賴中移除。 - #5618 支持在 Swagger 面板中設置默認路由。
- #5619 #5620 將
hyperf/coroutine
從hyperf/utils
分離出來。 - #5621 使用
Hyperf\Context\ApplicationContext
代替Hyperf\Utils\ApplicationContext
。 - #5622 將
CoroutineProxy
從hyperf/utils
分離到hyperf/context
。 - #5623 使用
Hyperf\Coroutine\Coroutine
替代Hyperf\Utils\Coroutine
。 - #5624 將
Channel
相關方法從hyperf/utils
分離到hyperf/coroutine
。 - #5629 將
Hyperf\Utils\Arr
繼承Hyperf\Collection\Arr
。
v3.0.15 - 2023-04-07
新增
- #5606 新增配置
server.options.send_channel_capacity
用來控制使用協程風格
服務時,是否使用SafeSocket
來返回數據。
優化
- #5593 #5598 使用
Hyperf\Collection\Collection
替代Hyperf\Utils\Collection
。 - #5594 使用
Hyperf\Collection\Arr
替代Hyperf\Utils\Arr
。 - #5596 將
hyperf/pipeline
從hyperf/utils
分離出來。 - #5599 使用
Hyperf\Pipeline\Pipeline
替代Hyperf\Utils\Pipeline
。
v3.0.14 - 2023-04-01
修復
優化
- #5572 優化了
HTTP
服務,使用WritableConnection
實現,支持Swow
。 - #5577 將組件
hyperf/collection
從hyperf/utils
分離。 - #5580 將組件
hyperf/conditionable
和hyperf/tappable
從hyperf/utils
分離。 - #5585 優化
service-governance
組件,去除了consul
的依賴關係。
v3.0.13 - 2023-03-26
新增
優化
- #5544 為
grpc-server
組件取消hyperf/rpc
的依賴。 - #5550 優化了
Coordinator Timer
和Crontab Parser
的代碼。 - #5566 基於模型生成
Swagger Schemas
時,優化變量類型可以為Null
。 - #5569 優化了
Crontab RunCommand
的依賴關係。
v3.0.12 - 2023-03-20
新增
- #4112 新增配置項
kafka.default.enable
用來控制消費者是否啓動。 - #5533 #5535 為
kafka
組件增加client
和socket
配置,允許開發者自定義。 - #5536 新增組件
hyperf/http2-client
。 - #5538 為
hyperf/http2-client
增加雙向流支持。 - #5511 將
GRPC
服務統一到RPC
服務中,可以更加方便的進行服務註冊與發現。 - #5543 增加
Nacos
雙向流支持,可以監聽到配置中心實時更新的事件。 - #5545 為組件
hyperf/http2-client
增加雙向流相關的測試。 - #5546 為
Nacos
配置中心增加GRPC
功能,可以實時監聽配置的變化。
優化
- #5539 優化了
AMQPConnection
的代碼,以支持最新版本的php-amqplib
組件。 - #5528 優化了
aspects
的配置,對熱重啓有更好的支持。 - #5541 提升了
FactoryResolver
基於XXXFactory
實例化對象的能力,增加了可選參數配置。
v3.0.11 - 2023-03-15
新增
- #5499 為
hyperf/constants
組件增加枚舉(>=PHP8.1)類型支持。 - #5508 新增方法
Hyperf\Rpc\Protocol::getNormalizer
。 - #5509 為
json-rpc
組件自動註冊normalizer
。 - #5513 組件
rpc-multiplex
使用默認的normalizer
並對rpc-server
增加自定義protocol.normalizer
的支持。 - #5518 增加方法
SwooleConnection::getSocket
用來獲取Swoole
的Response
。 - #5520 新增方法
Coroutine::stats()
和Coroutine::exists()
。 - #5525 新增配置
kafka.default.consume_timeout
用來控制消費者消費數據的超時時間。 - #5526 新增方法
Hyperf\Kafka\AbstractConsumer::isEnable()
用來控制kafka
消費者是否啓動。
修復
優化
v3.0.10 - 2023-03-11
修復
- #5497 修復
apollo
配置中心,無法正常觸發ConfigChanged
事件的問題。
新增
- #5491 為
Str
和Stringable
新增charAt
方法。 - #5503 新增
Hyperf\Contract\JsonDeSerializable
。 - #5504 新增
Hyperf\Utils\Serializer\JsonDeNormalizer
。
優化
- #5493 優化
Nacos
服務註冊器的代碼,使其支持1.x
和2.x
版本。 - #5494 #5501 優化
hyperf/guzzle
組件,當使用Swoole
且不支持native-curl
時,才會默認替換Handler
。
變更
- #5492 將
Hyperf\DbConnection\Listener\CreatingListener
重命名為Hyperf\DbConnection\Listener\InitUidOnCreatingListener
.
v3.0.9 - 2023-03-05
新增
- #5467 為
GRPC
增加Google\Rpc\Status
的支持。 - #5472 為模型增加
ulid
和uuid
的支持。 - #5476 為
Stringable
增加ArrayAccess
的支持。 - #5478 為
Stringable
和Str
增加isMatch
方法。
優化
- #5469 當數據庫連接出現問題時,確保連接在歸還到連接池前被重置。
v3.0.8 - 2023-02-26
修復
新增
- #5434 為
Swow
增加UDP
服務的支持。 - #5444 新增腳本
GenSchemaCommand
用來生成Swagger Schema
。 - #5451 為模型集合新增
appends($attributes)
方法。 - #5453 為測試組件增加
put()
和patch()
方法。 - #5454 為
GRPC
組件新增方法Hyperf\Grpc\Parser::statusFromResponse
。 - #5459 為
Str
和Stringable
新增方法uuid
和ulid
。
優化
v3.0.7 - 2023-02-18
新增
- #5042 為
Swagger
組件增加配置swagger.scan.paths
可以用來重寫默認的掃描目錄。 - #5403 為
Swow
增加Swoole Server
配置項的適配。 - #5404 為
Swagger
增加多端口服務的支持。 - #5406 為
Hyperf\Database\Model\Builder
增加mixin
方法。 - #5407 為
Swagger
增加請求方法Delete
和Options
的支持。 - #5409 為數據庫組件中
Query\Builder
和Paginator
類增加了一部分方法。 - #5414 為
Hyperf\Database\Model\Builder
增加了clone
方法。 - #5418 為配置中心增加了
ConfigChanged
事件。 - #5429 在連接
Aliyun Nacos
服務時,增加了配置項access_key
和access_secret
。
修復
- #5405 修復了當系統支持
IPv6
時,get local ip
無法正常讀取 ip 的問題。 - #5417 修復
PgSQL
無法正常使用數據庫遷移功能的問題。 - #5421 修復數據庫
Json
結構無法正常使用boolean
類型的問題。 - #5428 修復
Metric
中間件遇到異常時,服務端參數統計有誤的問題。 - #5424 修復數據庫遷移組件,不支持
PHP8.2
的問題。
優化
- #5411 優化代碼,異常
WebSocketHandeShakeException
應繼承BadRequestHttpException
。 - #5419 優化
RPN
組件的實現邏輯,可以更好的進行自定義擴展。 - #5422 當安裝
Swagger
組件後,默認啓動Swagger
的能力。
v3.0.6 - 2023-02-12
修復
- #5361 修復
Nacos
注入臨時實例失敗的問題。 - #5382 修復
SocketIO
中使用mix-subscriber
時,因為沒有設置密碼而報錯的問題。 - #5386 修復
SwoolePostgresqlClient
會被執行到不存在的方法exec
的問題。 - #5394 修復
hyperf/config-apollo
無法正常使用的問題。
新增
- #5366 為
hyperf/database
增加forceDeleting
事件。 - #5373 為
SwowServer
增加settings
配置。 - #5376 為
hyperf/metric
增加協程風格下服務狀態收集的能力。 - #5379 當
Nacos
心跳失敗時,增加日誌記錄。 - #5389 增加
Swagger
支持。 - #5395 為
Swagger
組件,增加驗證器功能。 - #5397 支持所有已知的
Swagger
註解。
v3.0.5 - 2023-02-06
新增
- #5338 為
SoftDeletingScope
新增了addRestoreOrCreate
方法。 - #5349 新增監聽器
ResumeExitCoordinatorListener
。 - #5355 新增方法
System::getCpuCoresNum()
。
修復
- #5357 修復在匿名函數中拋錯時,
coordinator
定時器無法正常停止的問題。
優化
- #5342 優化了
Redis
哨兵模式的地址讀取方式。
v3.0.4 - 2023-01-22
修復
v3.0.3 - 2023-01-16
修復
- #5318 修復在使用 PHP 8.1 版本時,限流器無法使用的問題。
- #5324 修復 MySQL 連接斷開時,數據庫組件無法使用的問題。
- #5322 修復 Kafka 消費者在沒有設置
memberId
等參數時,無法使用的問題。 - #5327 修復 PgSQL 在創建連接失敗時,導致類型錯誤的問題。
新增
- #5314 新增方法
Hyperf\Coordinator\Timer::stats()
. - #5323 新增方法
Hyperf\Nacos\Provider\ConfigProvider::listener()
.
優化
- #5308 #5309 #5310 #5311 為
hyperf/metric
增加協程服務的支持。 - #5315 增加
hyperf/metric
組件的監控指標。 - #5326 在循環中,收集服務當前的狀態。
v3.0.2 - 2023-01-09
修復
- #5305 使用
PolarDB
讀寫分離時,修復因沒有修改數據的情況下,提交事務會導致此鏈接存在異常,但又被回收進連接池的問題。 - #5307 修復
hyperf/metric
組件中,Timer::tick()
的$timeout
參數設置錯誤的問題。
優化
- #5306 當連接池回收連接失敗時,記錄日誌。
v3.0.1 - 2023-01-09
修復
- #5289 修復使用
Swow
引擎時,Signal
組件無法使用的問題。 - #5303 修復
SocketIO
的Redis NSQ 適配器
,當首次使用,topics
為null
時,無法正常工作的問題。
優化
- #5287 當服務端響應數據時,如果出現異常,則記錄對應日誌。
- #5292 為組件
hyperf/metric
增加Swow
引擎的支持。 - #5301 優化
Hyperf\Rpc\PathGenerator\PathGenerator
的代碼實現。
v3.0.0 - 2023-01-03
BC breaks
- 框架移除了
@Annotation
的使用,全面使用PHP8
的原生註解Attribute
。更新框架前,請確保已經全部替換到 PHP8 的原生註解。
我們提供了腳本,可以更加方便的將 Doctrine Annotations
替換為 PHP8 Attributes
。
!> Note: 以下腳本只能在框架 2.2 版本下執行
composer require hyperf/code-generator
php bin/hyperf.php code:generate -D app
- 模型升級腳本
因為模型基類,增加了類型限制,所以你需要使用以下腳本,將所有模型更新到新的寫法。
composer require hyperf/code-generator
php vendor/bin/regenerate-models.php $PWD/app/Model
- 框架增加了很多類型限制,所以當你從
2.2
升級到3.0
版本時,你需要調用靜態檢測腳本,檢查並確保其可以正常工作。
composer analysis
- 框架基於
gRPC
標準修改了gRPC
服務的 HTTP 返回碼。