跳至内容
v3.0.49 - 2024-05-16

v3.0.49 - 2024-05-16

Added

  • #6764 当遇到 Premature end of data 错误时,则认为当前数据库连接不可用,下次从连接池中取出来时,会被重连。

v3.0.48 - 2024-04-17

修复

  • #6693 修复使用 socket-io 时,如果没有传入 query 会在 data 中存在 ? 的情况下解析出错的问题。

v3.0.47 - 2024-01-11

优化

  • #6455 优化 Hyperf\SocketIOServer\Parser\Decoder::decode() 的代码实现。

v3.0.46 - 2023-11-30

修复

  • #6321 修复使用 tracer 组件时,jaeger 无法正确展示 HTTP 状态码的问题。

v3.0.45 - 2023-11-24

新增

  • #6297 新增接口 Hyperf\Crontab\Mutex\ServerNodeInterface 用于使用 CrontabonOneServer 功能时,自定义唯一键。
  • #6300 新增配置 rate_limit.storage.options.pool 用于使用限流器时,设置 Redis 连接池。
  • #6306RPC 服务增加请求级别生命周期。

修复

  • #6298 修复 Hyperf\Framework\Logger\StdoutLogger 中的 context 参数不支持复杂对象的问题。
  • #6303 修复 PDO 链接在超时时,不会被重试的问题。

优化

  • #6302 使用 command 模式调用定时任务时,设置 setCatchExceptions 为 false。
  • #6315 优化链路追踪组件从上下文读取 Tracer 时,不会多一次实例化的问题。

v3.0.44 - 2023-11-17

新增

  • #6283GRPC 服务增加请求周期事件支持。
  • #6292 增加 Validator::setValue 方法,并设置 Validator::getValue 为公共方法。

修复

  • #6284 修复使用命令行启动 Crontab 时,当抛出异常后,脚本无法正常关闭的问题。
  • #6291 修复 Crontab 启动锁机制时,偶发无法正常结束的问题。

优化

  • #6293 优化方法 Arr::flatten,使其比之前运行效率更高。

v3.0.43 - 2023-11-10

新增

  • #6272 新增开关 metric.enable_command_metric
  • #6273Hyperf\HttpServer\Router\Dispatched 增加 serverName 参数。

优化

  • #6261 避免使用 class_uses_recursive 时,因为 class_parents 返回 false 导致报错的问题。
  • #6271 使用 Crontab 时,限制匿名函数方式在 WorkerStrategy 策略中使用。

v3.0.42 - 2023-11-03

新增

  • #6236GenerateModelIDEVisitor 增加 unionType 支持。
  • #6246 #6252 增加 Crontab 生命周期事件。
  • #6249Crontab 增加 closure 执行类型。

优化

  • #6239 优化 AMQP 代码,替换一些即将废弃的方法,并增加 BeforeConsume 事件。
  • #6250 优化 generateModelIdeVisitor 注释的生成。
  • #6253 当收集类反射数据失败时,输出错误信息到终端。
  • #6256 优化 hyperf/translation 部分代码,为成员变量增加类型限制。

v3.0.41 - 2023-10-27

新增

  • #6224Response::xml() 等方法,增加 charset 参数。
  • #6232Hyperf\HttpServer\Router\Dispatched 增加 isNotFound 方法。
  • #6233hyperf/command 组件的 AfterExecute 事件,增加 exception 入参。

优化

  • #6226grpc 连接关闭时,不再发送数据。
  • #6228 #6229 FormRequest 中的 rules 方法不再必填。

v3.0.40 - 2023-10-20

修复

  • #6217 修复 Str::replaceLast 方法,在被替换内容为空时,无法正常使用的问题。

优化

v3.0.39 - 2023-10-13

新增

  • #6188Redis 的 options 配置增加 string 类型 key 支持。
  • #6193Swow 服务增加 HTTP 和 WebSocket 双协议端口支持。
  • #6198hyperf/tracer 组件增加 RpcAspect 用以替代 JsonRpcAspect
  • #6200hyperf/tracer 组件增加 ElasticserachAspectCoroutineAspect 的开关。
  • #6203hyperf/tracer 组件增加 Hyperf\Tracer\Aspect\GrpcAspect
  • #6207kafka 组件增加 exception_callback 配置。

v3.0.38 - 2023-10-05

修复

  • #6183 修复使用单测组件时,中间件权重无法正常使用的问题。
  • #6185 修复使用 socketio-server 时,cleanUpExpiredOncesids 为空时,无法正常使用的问题。

优化

  • #6177 使 hyperf/codec 组件 Base62 工具类,可以更加便捷的被继承重写。

v3.0.37 - 2023-09-22

新增

  • #6156stringable 组件增加了 Str::replaceStart() 等方法。

优化

  • #6154 在使用验证器组件时,如果原生方法 json_validate 存在,则使用其进行 Json 格式验证。
  • #6157 在使用 trace 组件时,只记录打开记录异常开关,并且不在忽略列表中的信息。

修复

  • #6160 修复当设置配置 services.enable.registerfalse 时,仍然会发布服务到服务中心的问题。
  • #6162 修复使用 Crontab 的时,当执行任务超过默认超时时间后,则不能很好的进行控制任务运行时机的问题。

v3.0.36 - 2023-09-15

新增

  • #6062hyperf/tracer 新增 RequestTraceListener 监听器。
  • #6143hyperf/tracer 增加 ignore_exceptions 配置。

优化

  • #6151 优化 hyperf/kafka 组件中 FailToConsume 的触发时机。

修复

  • #6117 修复 GRPC 客户端无法被复用的问题。
  • #6146 修复 validateJson 验证规则在高于 PHP 8.0 版本后,无法正常使用的问题。

v3.0.35 - 2023-09-01

修复

  • #6097 修复使用非 zipkintracer 组件时,会出现报错的问题。
  • #6099 修复使用 Redis 时,恒定频率释放链接模式无法正常使用的问题。
  • #6110 修复使用 Nacos GRPC 的配置中心时,多进程模式无法正常工作的问题。

新增

  • #6096Crontab 组件中的事件增加 getThrowable 方法。
  • #6094 新增验证器规则 ExcludeIf File ImageFileProhibitedIf
  • #6112Hyperf\Kafka\Producer 增加 sendAsyncsendBatchAsync 两个新方法。

优化

  • #6098 优化 hyperf/tracer kafka 上报器,增加其稳定性。
  • #6100 优化 hyperf/tracer HTTP 上报器,增加其性能和稳定性。
  • #6108 优化命令 describe:routes,展示排序后的中间件。
  • #6111tracer 上报器,增加日志输出能力。

v3.0.34 - 2023-08-25

新增

  • #6060tracer 组件增加 request.uri 标签。
  • #6063Request 相关事件,增加服务名参数 $server
  • #6070 为组件 hyperf/rpc-multilex 增加 php_serialize 协议。
  • #6069 #6075 为组件 hyperf/tracer 增加 kafka 上报器。
  • #6078 新增方法 Hyperf\Support\Composer::hasPackage()
  • #6083 #6084 支持中间件排序功能。

修复

  • #6065 修复方法 Context::overrideContext::getOrSet 没法对指定协程 ID 使用的问题。

优化

  • #6046 从协程上线文中读取 tracer 实例。
  • #6061server 配置,增加 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 类型参数会导致报错的问题。

优化

  • #6023 使用 Tracer 实例时,优先从协程上下文中获取。
  • #6027 优化协程下 Tracer 的使用逻辑。

即将废弃

  • #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::startsWithStr::endsWith 时,如果 $needles[null] 则会导致判断错误的问题。

新增

  • #5971 新增方法 Str::containsIgnoreCase() 可以在不区分大小写的情况下,用来判断是否是包含关系。

v3.0.30 - 2023-07-21

修复

  • #5947 修复使用 amqp 时,存在多个配置时,协程锁失效的问题。

优化

  • #5954 优化模型生成器,使其生成正确的参数注释。

新增

  • #5951SessionCookies 功能增加 SameSite 支持。
  • #5955Nacos 服务注册与发现,增加 access_keyaccess_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 为验证器规则 IntegerBoolean 增加严格模式。

优化

  • #5910 优化工厂类 NacosClientFactory,使其实例化 NacosClient 而非 Nacos Application 对象。

v3.0.27 - 2023-06-30

修复

  • #5880 修复因 Swagger 服务名随机成为数字时,导致服务无法正常启动的问题。
  • #5890 增加了部分,需要重连 PDO 的错误信息,避免 PDO 链接无法重连的问题。

优化

  • #5886 当使用 hyperf/db 连接 clickhouse 时,如果 SQL 执行错误,则会抛出异常。

v3.0.26 - 2023-06-24

修复

  • #5861 修复缓存组件中,使用 CoroutineMemory 时,CoroutineMemory::clearPrefix() 无法正常工作的问题。

优化

  • #5858 当调用数据库组件中 chunkById 时,如果 IdNull,则抛出异常。

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 修复验证器规则 leltegtgte 不会正常比较 numericstring

优化

  • #5789 支持高版本 psr/http-message
  • #5806 优化 Swow 服务,默认情况下合并通用配置。
  • #5814 增加方法 build_sql,在抛出异常 QueryException 时,可以快速的构建 SQL .

v3.0.23 - 2023-06-02

新增

  • #5757 支持 Nacos 服务注册与发现签名机制。
  • #5765database 组件增加全文检索的功能。

修复

  • #5782 修复 prometheus 无法正常收集 histograms 的问题。

优化

  • #5768Hyperf\Command\Annotation\Command 组件增加参数支持。
  • #5780 修复 Zipkin\Propagation\MapString 类型检测错误的问题。

v3.0.22 - 2023-05-27

新增

  • #5760 为组件 hyperf/translation 组件的助手函数增加命名空间。
  • #5761 新增方法 Hyperf\Coordinator\Timer::until().

优化

  • #5741Hyperf\DB\MySQLConnection 增加即将过期的标签。
  • #5702 优化了 Hyperf\Metric\Adapter\Prometheus\Redis 的代码,使其允许被重写 KEY 键前缀。
  • #5762 自定义进程默认使用非阻塞模式。

v3.0.21 - 2023-05-18

新增

  • #5721Request 生命周期事件,增加 exception 参数。
  • #5723hyperf/db 组件增加 Swoole5.xPgSQL 支持。
  • #5725hyperf/db 组件增加 Swoole4.xPgSQL 支持。
  • #5731 新增方法 Arr::hasAny()

修复

  • #5726 #5730 修复使用 pgsql-swoole 类型的 ORM 时,PgSQL 链接不会自动初始化的问题。

优化

  • #5718 优化了 view-engine 组件的代码,并增加了一些单元测试。
  • #5719 优化了 metric 组件的代码,并增加了一些单元测试。
  • #5720 优化了 Hyperf\Metric\Listener\OnPipeMessage 的代码,来避免消息阻塞的问题。

v3.0.20 - 2023-05-12

新增

  • #5707 新增助手函数 Hyperf\Config\config
  • #5711 新增方法 Arr::mapWithKeys()
  • #5715 增加请求级别生命周期事件。

修复

  • #5709 当日志组不存在时,修复错误日志记录有误的问题。
  • #5713Hyperf\SuperGlobals\Proxy\Server 增加通过自身进行实例化的能力。

优化

  • #5716 为协程风格服务增加超全局变量的支持。

v3.0.19 - 2023-05-06

修复

  • #5679 修复 #[Task] 注解的 $timeout 类型与 TaskAspect 不一致的问题。
  • #5684 修复使用了 break 语法后,blade 视图模板无法正常使用的问题。

新增

  • #5680rpc-multiplex 增加存储 RPC 上下文的能力。
  • #5695 为数据库迁移组件,增加设置 datetime 类型的创建时间和修改时间的功能。
  • #5699 增加 Model::resolveRelationUsing(),用来动态创建模型关系。

优化

  • #5694hyperf/utilshyperf/rpc 组件中移除。
  • #5696 使用 Hyperf\Coroutine\Coroutine::sleep() 替代 Swoole\Coroutine::sleep()

v3.0.18 - 2023-04-26

新增

  • #5672 将部分 utils 中的方法,复制到 hyperf/support 组件中,并增加对应的命名空间。

修复

  • #5662 修复 pgsql-swoole 执行失败时,无法抛出异常的问题。

优化

  • #5660hyperf/codechyperf/utils 分离出来。
  • #5663hyperf/serializerhyperf/utils 分离出来。
  • #5666Packershyperf/utils 分离到 hyperf/codec 中。
  • #5668hyperf/supporthyperf/utils 分离出来。
  • #5670hyperf/code-parserhyperf/utils 分离出来。
  • #5671 使用 Hyperf\Coroutine\Channel\Pool 代替 Hyperf\Utils\ChannelPool
  • #5674Hyperf\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/utilshyperf/guzzle 中移除。

v3.0.16 - 2023-04-12

修复

  • #5627 修复方法 Hyperf\Context\Context::destroy 支持协程下调用。

优化

  • #5616ApplicationContexthyperf/utils 分离到 hyperf/context
  • #5617hyperf/guzzlehyperf/consul 依赖中移除。
  • #5618 支持在 Swagger 面板中设置默认路由。
  • #5619 #5620hyperf/coroutinehyperf/utils 分离出来。
  • #5621 使用 Hyperf\Context\ApplicationContext 代替 Hyperf\Utils\ApplicationContext
  • #5622CoroutineProxyhyperf/utils 分离到 hyperf/context
  • #5623 使用 Hyperf\Coroutine\Coroutine 替代 Hyperf\Utils\Coroutine
  • #5624Channel 相关方法从 hyperf/utils 分离到 hyperf/coroutine
  • #5629Hyperf\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
  • #5596hyperf/pipelinehyperf/utils 分离出来。
  • #5599 使用 Hyperf\Pipeline\Pipeline 替代 Hyperf\Utils\Pipeline

v3.0.14 - 2023-04-01

修复

  • #5578 修复了无法序列化 Crontab 的问题。
  • #5579 修复 crontab:run 无法正常工作的问题。

优化

  • #5572 优化了 HTTP 服务,使用 WritableConnection 实现,支持 Swow
  • #5577 将组件 hyperf/collectionhyperf/utils 分离。
  • #5580 将组件 hyperf/conditionablehyperf/tappablehyperf/utils 分离。
  • #5585 优化 service-governance 组件,去除了 consul 的依赖关系。

v3.0.13 - 2023-03-26

新增

  • #5561hyperf/kafka 增加自定义定时器的配置。
  • #5562MySQL 数据库组件,增加 upsert() 支持。
  • #5563Crontab 任务增加是否执行完的逻辑。

优化

  • #5544grpc-server 组件取消 hyperf/rpc 的依赖。
  • #5550 优化了 Coordinator TimerCrontab Parser 的代码。
  • #5566 基于模型生成 Swagger Schemas 时,优化变量类型可以为 Null
  • #5569 优化了 Crontab RunCommand 的依赖关系。

v3.0.12 - 2023-03-20

新增

  • #4112 新增配置项 kafka.default.enable 用来控制消费者是否启动。
  • #5533 #5535kafka 组件增加 clientsocket 配置,允许开发者自定义。
  • #5536 新增组件 hyperf/http2-client
  • #5538hyperf/http2-client 增加双向流支持。
  • #5511GRPC 服务统一到 RPC 服务中,可以更加方便的进行服务注册与发现。
  • #5543 增加 Nacos 双向流支持,可以监听到配置中心实时更新的事件。
  • #5545 为组件 hyperf/http2-client 增加双向流相关的测试。
  • #5546Nacos 配置中心增加 GRPC 功能,可以实时监听配置的变化。

优化

  • #5539 优化了 AMQPConnection 的代码,以支持最新版本的 php-amqplib 组件。
  • #5528 优化了 aspects 的配置,对热重启有更好的支持。
  • #5541 提升了 FactoryResolver 基于 XXXFactory 实例化对象的能力,增加了可选参数配置。

v3.0.11 - 2023-03-15

新增

  • #5499hyperf/constants 组件增加枚举(>=PHP8.1)类型支持。
  • #5508 新增方法 Hyperf\Rpc\Protocol::getNormalizer
  • #5509json-rpc 组件自动注册 normalizer
  • #5513 组件 rpc-multiplex 使用默认的 normalizer 并对 rpc-server 增加自定义 protocol.normalizer 的支持。
  • #5518 增加方法 SwooleConnection::getSocket 用来获取 SwooleResponse
  • #5520 新增方法 Coroutine::stats()Coroutine::exists()
  • #5525 新增配置 kafka.default.consume_timeout 用来控制消费者消费数据的超时时间。
  • #5526 新增方法 Hyperf\Kafka\AbstractConsumer::isEnable() 用来控制 kafka 消费者是否启动。

修复

  • #5519 修复因 kafka 生产者 loop 方法导致进程无法正常退出的问题。
  • #5523 修复在发生 kafka rebalance 的时候,进程无故停止的问题。

优化

  • #5510 允许开发者自定义 RPC 客户端normalizer 的实现。
  • #5525 当消费 kafka 消息时,每个消息会在独立的协程中进行处理。

v3.0.10 - 2023-03-11

修复

  • #5497 修复 apollo 配置中心,无法正常触发 ConfigChanged 事件的问题。

新增

  • #5491StrStringable 新增 charAt 方法。
  • #5503 新增 Hyperf\Contract\JsonDeSerializable
  • #5504 新增 Hyperf\Utils\Serializer\JsonDeNormalizer

优化

  • #5493 优化 Nacos 服务注册器的代码,使其支持 1.x2.x 版本。
  • #5494 #5501 优化 hyperf/guzzle 组件,当使用 Swoole 且不支持 native-curl 时,才会默认替换 Handler

变更

  • #5492Hyperf\DbConnection\Listener\CreatingListener 重命名为 Hyperf\DbConnection\Listener\InitUidOnCreatingListener.

v3.0.9 - 2023-03-05

新增

  • #5467GRPC 增加 Google\Rpc\Status 的支持。
  • #5472 为模型增加 uliduuid 的支持。
  • #5476Stringable 增加 ArrayAccess 的支持。
  • #5478StringableStr 增加 isMatch 方法。

优化

  • #5469 当数据库连接出现问题时,确保连接在归还到连接池前被重置。

v3.0.8 - 2023-02-26

修复

  • #5433 #5438 修复 Nacos 临时实例,不需要发送心跳的问题。
  • #5464 修复 Swagger 服务无法在异步风格中,正常启动的问题。

新增

  • #5434Swow 增加 UDP 服务的支持。
  • #5444 新增脚本 GenSchemaCommand 用来生成 Swagger Schema
  • #5451 为模型集合新增 appends($attributes) 方法。
  • #5453 为测试组件增加 put()patch() 方法。
  • #5454GRPC 组件新增方法 Hyperf\Grpc\Parser::statusFromResponse
  • #5459StrStringable 新增方法 uuidulid

优化

  • #5437Str::length 移除了没用的 if 判断。
  • #5439 优化了 Arr::shuffle 的代码。

v3.0.7 - 2023-02-18

新增

  • #5042Swagger 组件增加配置 swagger.scan.paths 可以用来重写默认的扫描目录。
  • #5403Swow 增加 Swoole Server 配置项的适配。
  • #5404Swagger 增加多端口服务的支持。
  • #5406Hyperf\Database\Model\Builder 增加 mixin 方法。
  • #5407Swagger 增加请求方法 DeleteOptions 的支持。
  • #5409 为数据库组件中 Query\BuilderPaginator 类增加了一部分方法。
  • #5414Hyperf\Database\Model\Builder 增加了 clone 方法。
  • #5418 为配置中心增加了 ConfigChanged 事件。
  • #5429 在连接 Aliyun Nacos 服务时,增加了配置项 access_keyaccess_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 无法正常使用的问题。

新增

  • #5366hyperf/database 增加 forceDeleting 事件。
  • #5373SwowServer 增加 settings 配置。
  • #5376hyperf/metric 增加协程风格下服务状态收集的能力。
  • #5379Nacos 心跳失败时,增加日志记录。
  • #5389 增加 Swagger 支持。
  • #5395Swagger 组件,增加验证器功能。
  • #5397 支持所有已知的 Swagger 注解。

v3.0.5 - 2023-02-06

新增

  • #5338SoftDeletingScope 新增了 addRestoreOrCreate 方法。
  • #5349 新增监听器 ResumeExitCoordinatorListener
  • #5355 新增方法 System::getCpuCoresNum()

修复

  • #5357 修复在匿名函数中抛错时,coordinator 定时器无法正常停止的问题。

优化

  • #5342 优化了 Redis 哨兵模式的地址读取方式。

v3.0.4 - 2023-01-22

修复

  • #5332 修复了 PgSQLSwooleConnection::unprepared 无法正常使用的问题。
  • #5333 修复数据库组件在闲置时间过长,连接断开导致数据库读写报错的问题。

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 #5311hyperf/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 修复 SocketIORedis NSQ 适配器,当首次使用,topicsnull 时,无法正常工作的问题。

优化

  • #5287 当服务端响应数据时,如果出现异常,则记录对应日志。
  • #5292 为组件 hyperf/metric 增加 Swow 引擎的支持。
  • #5301 优化 Hyperf\Rpc\PathGenerator\PathGenerator 的代码实现。

v3.0.0 - 2023-01-03

  • #4238 更新所有组件 PHP 最低版本到 8.0
  • #5087 支持 PHP 8.2

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 返回码。