v3.1.70 - 2026-06-15
v3.1.70 - 2026-06-15
优化
- #7761 优化方法
Hyperf\Coordinator\Timer::tick()的执行逻辑运行于Hyperf\Coroutine\wait()方法中,以确保运行在独立的协程环境里。 - #7761 优化方法
wait()优先检查Hyperf\Coroutine\Waiter是否存在容器中。
v3.1.69 - 2026-05-09
修复
- #7731 修复了 Hyperf\HttpServer\Response 的 Macroable 无法工作的 bug。
- #7734 修复了在长生命周期环境下使用 Redis::pipeline() 时内存泄漏的 bug。
- #7736 修复了 RedisDriver 中 keys 方法在 sMembers 返回非数组值时无法返回数组的 bug。
- #7737 修复了 PostgresProcessor 在 columns 为 null 时无法处理索引和外键的 bug。
- #7745 修复了使用 Swoole 6.2.0 时 getUri()->getHost() 返回服务器 IP 而非域名的 bug,原因是 getUriFromGlobals() 中 server_addr 的优先级高于 header[‘host’]。
v3.1.68 - 2026-04-21
修复
- #7738 修复
Hyperf\Database\Concerns\BuildsQueries::getOriginalColumnNameForCursorPagination无法正常使用的BUG。 - #7739 修复使用
nacos时,因为服务不存在,导致无法启动的问题。 - #7740 修复
Aws\Handler\GuzzleV6\GuzzleHandler找不到的问题。
优化
- #7741 优化方法
Hyperf\Amqp\Message\Message::getTypeString()避免成员变量与getter冲突的问题。统一使用getter读取。
v3.1.67 - 2026-02-24
新增
- #7459 使用验证器规则
exists和unique时,支持使用形如App\\Model\\User的模型写法。 - #7555 新增
Hyperf\Crontab\Mutex\RedisServerMutexByNodeName。 - #7607 为
hyperf/database增加新的模型自定义类型转换器AsCollection。 - #7648 为
nacos支持阿里云mse签名。
优化
- #7676 优化
hyperf/tracer组件的客户端标签写法。
修复
- #7703 修复
hyperf/cache内存适配器不支持默认ttl的问题。 - #7705 修复
Hyperf\Database\Query\Builder::eachById无法正常使用的问题。 - #7712 修复
classes等扫描缓存解析失败导致报错的问题。
v3.1.66 - 2026-01-25
新增
- #7667 #7672 为
hyperf/grpc-client新增参数client_count用来支持创建多个客户端。 - #7668 为
Hyperf\Guzzle\PoolHandler新增参数$isCookiePersistent用来支持是否持久化Cookies。 - #7670 为文件生成命令增加
--path选项,用来指定生成位置。 - #7684 新增方法
Hyperf\Database\Schema\Builder::withoutForeignKeyConstraints()。 - #7693 为
ForeignKeyDefinition新增方法cascadeOnDelete(),restrictOnDelete(),noActionOnDelete(),restrictOnUpdate(),nullOnUpdate(),noActionOnUpdate()。 - #7698 新增方法
Pool::flushAll()和PoolFactory::flushAll()。 - #7699 为
QueryBuilder新增方法whereJsonContainsKey(),orWhereJsonContainsKey(),whereJsonDoesntContainKey(),orWhereJsonDoesntContainKey()。
优化
修复
v3.1.65 - 2025-12-04
新增
- #7585 新增事件
Hyperf\Kafka\Event\FailToAck和Hyperf\Kafka\Event\FailToRequeue。 - #7632 增加
thecodingmachine/graphqlite:^8.1的支持。 - #7644 新增
Str::uuidv7()。
优化
- #7649 为
Hyperf\Metric\Listener\OnBeforeHandle移除AfterExecute的事件监听。
v3.1.64 - 2025-11-12
新增
优化
- #7604 优化异步队列
AsyncQueueMessage注解支持定义在protected和private方法上。 - #7611 为
Console::command()增加注释@param-closure-this,用来获得更好的ide代码提示。 - #7615 把异步队列的消费者进程中的
$queue参数重命名为$pool。
修复
- #7596 修复使用验证器时,使用了不存在的场景值,导致报错的问题。
v3.1.63 - 2025-10-30
修复
- #7536 修复
Hyperf\Validation\ValidationRuleParser::parseParameters()不支持PHP 8.4的问题。 - #7543 修复
nacos组件代码没有严格符合psr4标准的问题。 - #7554 修复参数
Redis集群context参数在没有设置密码时,不生效的问题。 - #7561 重置
Nacos\Application的构造函数参数名。
新增
- #7553 对
hyperf/testing组件增加PATCH方法的支持。
优化
v3.1.62 - 2025-10-11
新增
- #7469 使用参数验证器时,支持通过场景值覆写参数验证规则。
- #7531 为脚本
migrate:rollback新增参数batch。 - #7545 运行脚本最后自动执行
CoordinatorManager::until(Constants::WORKER_EXIT)->resume();。
修复
- #7547 修复
kafka消费者配置成员变量$pool时,无法正常使用的问题。
v3.1.61 - 2025-09-04
新增
- #7467 为 Nacos SDK 支持 v2 和 v3 版本。
- #7476 为
Hyperf\Support\Fluent新增 traitInteractsWithData支持。 - #7480 新增方法
Hyperf\Database\Model\Builder::incrementOrCreate()。 - #7481 新增方法
Collection::doesntContainStrict()和LazyCollection::doesntContainStrict()。 - #7483 新增
Hyperf\Database\Model\Relations\BelongsTo::dissociate()的别名disassociate()。 - #7484 新增方法
Hyperf\Database\Model\Model::isSoftDeletable()。 - #7486 新增方法
Hyperf\Database\Model\Builder::except()。 - #7487 新增模型对
ArrayObject类型的转换器Hyperf\Database\Model\Casts\AsArrayObject。 - #7492 为
Hyperf\Pipeline\Pipeline新增 traitMacroable的支持。 - #7499 新增常量
Hyperf\Kafka\Constants\KafkaStrategy::STICKY_ASSIGNOR。 - #7500 新增方法
Hyperf\Collection\Arr::push()和Hyperf\Collection\Arr::array()。 - #7502 新增方法
Hyperf\Collection\Arr::hasAll()。 - #7509 新增
Hyperf\Codec\Packer\Resp3Packer。 - #7518 新增方法
Hyperf\Database\Query\Grammars\Grammar::whereValueBetween()。
优化
- #7501 为
Hyperf\Macroable\Macroable::macro()增加引用验证,避免使用引用导致代码执行结果不达预期的情况。
v3.1.60 - 2025-08-02
修复
- #7447 修复
migrate:fresh无法删除默认表的问题。 - #7449 修复方法
Hyperf\Database\Migrations\Migrator::reset()不支持传入string格式参数的问题。
新增
- #7466 为
Hyperf\Support\Fluent新增方法isEmpty/isNotEmpty/getIterator。 - #7473 为
kafka新增配置项produce_retry和producer_retry_sleep。
v3.1.59 - 2025-07-03
修复
- #7421 修复当设置
Cookies中某个值为 "" 时,无法正确删除此Cookie的问题。 - #7424 修复使用
watcher组件时,php二进制文件路径带有空格会导致报错的问题。 - #7427 修复验证器中
exclude规则不可用的问题。
优化
- #7394 当使用
Redis::transaction($callback)和Redis::transaction($callback)后,可以立即释放连接到连接池中。
v3.1.57 - 2025-06-23
修复
- #7402 修复使用
pgsql-swoole数据库时,参数connect_timeout无法正常工作的问题。 - #7414 修复
sqlite数据库迁移无法正常使用的问题。 - #7420 修复使用模型缓存时,
luasha会在Redis重启时发生故障的问题。
优化
- #7411 移除
Hyperf\Utils组件。
v3.1.56 - 2025-06-05
修复
新增
- #7392 为
AsCommand和ClosureCommand增加coroutine选项。 - #7404 为
CacheAHead注解增加runAsync参数,用来异步初始化缓存操作,但会导致返回值为Null。
v3.1.55 - 2025-05-15
Added
- #7365 为
logger配置文件,增加callable方式支持。 - #7381 新增
Hyperf\Database\PgSQL\Query\Grammars\PostgresGrammar\compileJsonOverlaps。
Fixed
- #7363 修复
Hyperf\HttpServer\Router\RouteCollector中代码注释,解决IDE错误误报。 - #7379 修复使用
PgSQL的Migrator功能时,PDO适配器无法正常使用的问题。
v3.1.54 - 2025-04-27
新增
修复
v3.1.53 - 2025-04-03
修复
- #7309 修复
Hyperf\Testing\Client在使用非POST请求时,不支持Json结构的问题。 - #7318 修复
WebSocket客户端不支持接收CloseFrame的问题。 - #7329 修复创建模型时,
$connection类型报错的问题。
新增
- #7311 新增
Hyperf\Redis\Event\CommandExecuted::getFormatCommand()。 - #7313 新增验证器规则
contains,extensionsandhex_color。 - #7314 增加
hyperf/db组件中pgsql引擎的schema配置。 - #7325 为
Hyperf\Di\ReflectionType增加注解元数据。 - #7332 新增方法
Hyperf\Memory\LockManager::exists()。
v3.1.52 - 2025-02-27
新增
- #7200 新增方法
Hyperf\Database\Connection::scalar()用于读取满足查询条件的第一行数据的第一个字段值。 - #7279 为
gen:model增加解析trait中的Relation和Attribute的功能。 - #7286 新增方法
Hyperf\Coroutine\Coroutine::list()。 - #7291 当使用
Model::createOrFirst读到null值时,抛出异常。
v3.1.51 - 2025-02-06
新增
- #7250 新增
Hyperf\AsyncQueue\Driver\Driver::getConfig()。 - #7255 为
Hyperf\Database\Model\Builder新增createOrFirst()和createOrRestore()。 - #7259 为
Hyperf\Database\Query\Builder新增existsOr和doesntExistOr。 - #7260 新增
Hyperf\Database\Query\Builder::sole()。 - #7261 新增
Hyperf\Database\Model\Model::discardChanges()。 - #7262 新增
Hyperf\Database\Model\Model::hasAppended()。 - #7263 新增
Hyperf\Coroutine\WaitConcurrent。 - #7265 新增
Hyperf\Command\Concerns\Prohibitable。 - #7269 新增
Hyperf\Redis\Event\CommandExecuted。 - #7273 使用命令创建文件后,支持使用
cursor编辑器自动打开对应文件。
优化
v3.1.50 - 2025-01-09
修复
- #7231 修复使用
WebSocket时,错误的OnMessage处理器导致致命异常的问题。
新增
优化
v3.1.49 - 2024-12-17
优化
v3.1.48 - 2024-12-12
优化
- #7194 当数据库更新触发唯一键错误时,抛出异常
UniqueConstraintViolationException. - #7187 当使用单元测试时,支持从
Request中读取Server相关参数。
修复
- #7188 修复
Hyperf\HttpMessage\Server\ResponsePlusProxy无法支持其他不携带getCookies方法的Response实现类。
新增
- #7192 新增方法
Hyperf\Database\Model\Collection::findOrFail().
v3.1.47 - 2024-11-28
修复
- #7176 修复使用
Swow时,无法正常设置Cookies的问题。
v3.1.46 - 2024-11-21
新增
- #7148 为
hyperf/validation增加exclude验证规则。 - #7150 为
hyperf/validation增加部分验证规则,例如accepted_if,ascii,date_equals等。 - #7151 为
Hyperf\Testing\Concerns\RunTestsInCoroutine::runTestsInCoroutine()增加钩子方法beforeTestInCoroutine和afterTestInCoroutine。 - #7156 新增方法
Hyperf\Database\Schema\Blueprint::engine()。
v3.1.45 - 2024-11-14
新增
- #7141 新增方法
Hyperf\Collection\Arr::shuffleAssoc。 - #7143 新增方法
Hyperf\Database\Model\Builder::findOr。 - #7147 为
Model\Collection增加方法setVisible和setHidden。 - #7149 为
swagger组件增加在配置中设置servers和info的能力。
修复
- #7133 修复使用
migration时,主动配置connection不生效的问题。
v3.1.44 - 2024-10-24
新增
- #7063 为
Hyperf\Database\Schema\Blueprint新增nullableUuidMorphsuuidMorphs和nullableNumericMorphs。 - #7070 新增
Blueprint::charset()和Blueprint::collation()。 - #7071 新增
Hyperf\Database\Schema\Blueprint::tinyText()。 - #7110 支持禁用
class morphs。
修复
- #7124 修复
sortByMany方法使用SORT_NATURAL时,因数据为Null导致报错的问题。
v3.1.43 - 2024-10-10
修复
优化
- #7082 优化
Hyperf\Database\Query\Grammars\Grammar::compileUpdate()的实现代码。 - #7084 优化
Hyperf\Watcher\Ast\RewriteClassNameVisitor::leaveNode()的实现代码。 - #7105 使用
watcher时,移除env_vars来保证子进程的环境变量与主进程一致。
新增
- #7025 新增方法
Hyperf\Database\Model\Relations\Relation::getMorphAlias()。
v3.1.42 - 2024-09-25
修复
- #7081 修复方法
data_get不支持非string类型key值的问题。
新增
- #7088 优化了所有组件的
Github Actions的使用方式。
v3.1.41 - 2024-09-19
新增
- #7059 新增方法
Hyperf\Database\Schema\Schema::getForeignKeys()。 - #7064 为
DoctrineConnection增加枚举类型支持。 - #7077 新增方法
ModelUpdateVisitor::getReturnType。
v3.1.40 - 2024-09-12
修复
- #7051 修复使用
migrate时,--database选项不生效的问题。
优化
- #7053 将
Str::is()中的$value和$pattern入参强制转化为string类型。
v3.1.39 - 2024-09-05
修复
优化
新增
- #7024 为
Hyperf\Database\Schema\Schema新增方法whenTableHasColumn和whenTableDoesntHaveColumn。
v3.1.38 - 2024-08-29
新增
- #7016 新增
QueryBuilder::reorder方法,用来重置排序规则。 - #7023 新增
Hyperf\Contract\CanBeEscapedWhenCastToString并修改了部分静态检测的错误。 - #7028 新增
Hyperf\Framework\Logger\ConsoleLogger.
v3.1.37 - 2024-08-22
新增
- #7015 为
Hyperf\Database\Query\Builder新增方法whereNone和orWhereNone。
优化
- #6839 使用
匿名类避免Migration类重定义的问题。
v3.1.36 - 2024-08-15
新增
- #6971 为
Cookie增加partitioned支持。 - #6990 为
Hyperf\Support\Traits\InteractsWithTime增加currentTimestampMs方法。 - #6998 为注解
#[AutoController]新增defaultMethods参数,你可以更加方便的设置Options方法,便于支持跨域中间件。
v3.1.35 - 2024-08-08
修复
- #6987 修复使用
Swagger服务时,使用根路由会导致报错的问题。
v3.1.34 - 2024-08-01
新增
v3.1.33 - 2024-07-25
优化
修复
- #6954 修复
MySQL Server在故障转移和读写主机交换的情况下,MySQL 连接无法重新连接到服务器的问题。 - #6961 修复
websocket sender不支持Swow的问题。
v3.1.32 - 2024-07-18
修复
优化
- #6946 删除
watcher组件中的Swoole Atomic依赖。
新增
- #6950 为
database组件增加位运算查询支持。
v3.1.31 - 2024-07-11
Added
- #6936 Support to reload
.envwhen usinghyperf/watcher.
v3.1.30 - 2024-07-05
修复
- #6925 修复
Collection::sortByMany()在新版本会重置索引导致 BC 的问题,但在 v3.2 版本中,将会把sortByMany()返回结果与sortBy()一致,即不再会重置索引。
v3.1.29 - 2024-07-04
修复
- #6925 修复方法
sortByMany不支持排序规则的问题。
新增
v3.1.28 - 2024-06-27
修复
优化
- #6903 优化
config-nacos部分代码。
新增
- #6885 新增验证器规则
prohibiti。 - #6891 为
hyperf/cache组件增加配置项cache.*.options.pool用于主动选择使用哪个Redis实例。 - #6895 增加收集枚举类中注解的能力。
v3.1.27 - 2024-06-20
新增
- #6864 为
Hyperf\Database\Schema\Schema新增方法getViews和hasView。 - #6866 新增方法
Hyperf\Database\Concerns\BuildsQueries::lazy。 - #6869 为
Collection新增方法before和after。 - #6876 新增方法
Hyperf\Database\Concerns\Builder::eachById. - #6878 为
Hyperf\Database\Model\Concerns\QueriesRelationships新增whereMorphRelation和orWhereMorphRelation。 - #6883 为
Hyperf\Database\Schema\Builder新增方法getIndexeshasIndex和getIndexListing。 - #6884 新增方法
Hyperf\Database\Model\Model::updateOrFail. - #6897 #6899 为
Hyperf\Kafka\ConsumerManager新增事件BeforeLongLangConsumerCreated和AfterConsumerConfigCreated。
优化
- #6829 优化
Command的错误输出结构。 - #6868 为
QueryBuilder::orderBy()的$column参数增加类型Closure|Expression|ModelBuilder|static|string的支持。 - #6870 统一
Model Factory构造函数中的默认路径。 - #6874 优化
hyperf/watcher组件,使用Scanner代替硬编码。
v3.1.26 - 2024-06-13
修复
- #6848 修复
LazyCollection::splitIn()因为类型限制导致报错的问题。
新增
- #6845 新增方法
Hyperf\Database\Schema::getTables()。 - #6846 为
Hyperf\Database\Concerns\BuildsQueries新增方法chunkById和chunkByIdDesc。 - #6851 为
Hyperf\Database\Model\Concerns新增方法orDoesntHaveMorph和orHasMorph。 - #6858 为
Hyperf\Database\Model\Concerns\HidesAttributes新增方法makeHiddenIf和makeVisibleIf。
优化
- #6855 使用
Conditionable优化BuildsQueries中的when和unless方法。 - #6856 使用
Conditionable优化Hyperf\Scout\Builder中的when和unless方法。 - #6860 使用
Hyperf\Collection\Enumerable代替Hyperf\ViewEngine\Contract\Enumerable。
v3.1.25.1 - 2024-06-07
新增
- #6837 新增方法
Model\Concerns\QueriesRelationships::withWhereHas()。 - #6844 为
Hyperf\Database\Model\Concerns\QueriesRelationships新增方法whereRelation和orWhereRelation。
优化
v3.1.25 - 2024-06-06
新增
- #6809 为
hyperf/database增加基于cursor的分页机制。 - #6811 为
hyperf/validation增加验证器规则list。 - #6814 新增方法
Model::query()->touch()用于更新updated_at数据。 - #6815 新增方法
Hyperf\Database\Model\Builder::qualifyColumns()。 - #6816 新增方法
Hyperf\Database\Model\Builder::load*。 - #6820 新增方法
Hyperf\Database\Model\Builder::valueOrFail()。 - #6821 新增方法
Hyperf\Database\Concerns\BuildsQueries::chunkMap()。 - #6822 为
Lazy Queries新增方法lazyById和lazyByIdDesc。 - #6825 为
Hyperf\Database\Schmea新增方法createDatabase和dropDatabaseIfExists。
修复
- #6813 修复
Hyperf\Constants\Annotation\Message无法使用驼峰key的问题。 - #6818 修复
updateOrInsert不支持空数据的问题。 - #6828 修复
AOP无法作用于__construct的问题。 - #6836 修复
SetCookie::fromString无法正常使用的问题。
v3.1.24 - 2024-05-30
修复
新增
- #6792 为
Hyperf\Database\Query\Builder增加IncrementEach和DecrementEach方法。 - #6793 为
tracer增加Request和Response数据。 - #6795 为
rate-limit增加配置rate_limit.storage.options.expired_time。
优化
- #6778 为
Hyperf\Amqp\Annotation\Consumer::routingKey增加array支持。 - #6799 为
Hyperf\Stringable\Str增加numbers和fromBase64方法。 - #6803 为
AsCommand和ClosureCommand取消返回值,避免与Command冲突。
v3.1.23 - 2024-05-23
新增
- #6757 新增
Hyperf\Collection\LazyCollection。 - #6763 当遇到
Premature end of data错误时,则认为当前数据库连接不可用,下次从连接池中取出来时,会被重连。 - #6767 为
Hyperf\Database\Query\Builder新增whereAll/orWhereAll和whereAny/orWhereAny方法。 - #6774 为
Hyperf\Database\Query\Builder增加Lateral Join方法。 - #6781 为
Hyperf\Collection\Arr增加一些新的方法。 - #6782 为
Hyperf\Database\Query\Builder新增whereJsonOverlaps,orWhereJsonOverlaps和whereJsonDoesntOverlap方法。 - #6783 为
Hyperf\Database\Query\Builder增加insertOrIgnoreUsing方法。 - #6784 为
Hyperf\Collection\Collection增加getOrPut和getOrSet方法。
优化
v3.1.22 - 2024-05-16
修复
- #6755 修复
Hyperf\Serializer\ExceptionNormalizer不支持symfony 7的问题。
新增
- #6734 为
AsCommand和ClosureCommand增加更加复杂的可选参数支持。 - #6746 为
Hyperf\Database\Query\Builder增加explain()方法。 - #6749 为
hyperf/validation增加一部分新的规则。 - #6752 为
Hyperf\Database\Seeders\Seed增加path和paths方法。
v3.1.21 - 2024-05-09
新增
- #6738 为
Hyperf\Collection\Collection增加unshift方法。 - #6740 为
Hyperf\Database\Query\Builder增加useIndexforceIndex和ignoreIndex。
优化
- #6716 #6717 优化
AMQP消费者启动时,声明交换机的逻辑。 - #6721 优化了
Collection中的when方法。 - #6731 优化
Hyperf\Testing\Concerns\InteractsWithModelFactory代码,避免因为hyperf/database没有引入时会报错的问题。
修复
- #6728 修复
hyperf/watch组件在hyperf/constants开启枚举模式时,会无法正常使用的问题。
v3.1.20 - 2024-04-26
新增
优化
- #6700 优化了
Pluralizer的代码实现。
v3.1.19 - 2024-04-18
修复
- #6689 修复
Socket-IO服务无法正常解析没有query但是data中携带?的数据。 - #6697 修复使用
Swow引擎时,Request和Response的toString()方法无法正常使用withoutBody参数的问题。
新增
- #6680 为
Hyperf\Coordinator增加了一些常用的助手函数。 - #6681 为
gen:constant脚本增加type选项,可以用于生成const或者enum两种不同写法的常量/枚举类。
优化
- #6686 优化
FswatchDriver读到空字符串时,会盲目重启的情况。 - #6698 升级
hyperf/engine版本到v2.11。 - #6696 使用
AMQP时,消息生产者可以不再必须配置Producer注解。
v3.1.18 - 2024-04-12
新增
- #6674 为
Redis连接池增加getConfig()方法。
修复
- #6664 修复使用
isset判断Hyperf\Collection\Collection中某个key时,无法正确处理null的问题。
优化
- #6668 优化多路复用
RPC组件的错误捕获器,避免接口文件出错时,无法得到相应错误的问题。
v3.1.17 - 2024-04-10
新增
- #6652 新增
Str::trim方法。 - #6658 当接收到
HEAD请求时,若不存在当前路由,则尝试从GET方法中读取中间件(因为在 fast-route 组件中,存在没有HEAD路由会尝试寻找GET路由的情况)。 - #6665 当使用
Websocket时,记录读取数据的错误日志。
变更
- #6661 在使用
hyperf/watcher时,使用PHP_BINARY替代php作为默认的 2 进制命令。
v3.1.16 - 2024-04-02
新增
- #6632 为
websocket-client增加设置headers的能力。 - #6648 使用
WebSocket组件的Sender::push()和Sender::disconnect时,增加bool类型的返回值。
修复
优化
- #6640 为
hyperf/constants增加 PHP8 注解的支持。
v3.1.15 - 2024-03-28
新增
- #6613 为
hyperf/pool组件在回收链接时,增加ReleaseConnection事件。
优化
即将废弃
- #6621 标记
WebSocketHandeShakeException为即将废弃, 请使用WebSocketHandShakeException。
v3.1.14 - 2024-03-21
修复
- #6609 修复当
scan配置不存在时,会清空整个配置的问题。
Added
- #6594 新增
hyperf/carbon组件。
Optimized
v3.1.13 - 2024-03-14
新增
- #6576 新增
Hyperf\Stringable\Str::apa()方法。 - #6577 在
Command执行前,自动装载符合命名规则的traits。 - #6579 为
hyperf/support组件新增now()和today()方法。 - #6590 为
MigrateCommand增加--graceful选项。
修复
- #6593 修复注解
AsCommand无法正常工作的问题。
v3.1.12 - 2024-03-07
修复
- #6569 修复使用
http2-client组件时,当读取超时,channel被移除后,会导致报错的问题。 - #6561 修复使用
gen:model创建模型时,模型关系注释会生成失败的问题。 - #6566 修复使用
$request->all()读取所有入参时,数字类型的key值会被重置的问题。 - #6567 修复监听器
CrontabRegisterListener不会主动检查crontab.enable配置。
v3.1.11 - 2024-03-01
修复
新增
优化
- #6556 在数据库组件时,允许为模型参数复制表达式。但这不是一个标准用法,尽量不要使用
v3.1.10 - 2024-02-23
新增
优化
- #6539 为
retry方法,增加支持手动设置,每次重试时延时时长的功能。
v3.1.9 - 2024-02-18
修复
- #6482 修复使用验证器组件时,
decimal规则无法与size配合使用的问题。
新增
优化
v3.1.8 - 2024-02-01
修复
- #6509 修复
Crontab组件的Schedule::call()方法不支持array参数的问题。
优化
- #6511 优化异步队列消息体结构
Hyperf\AsyncQueue\JobMessage。
新增
- #6504 为
rpc-multiplex组件增加HostReaderInterface支持,允许用户自定义协议Host。
v3.1.7 - 2024-01-26
修复
新增
- #6483 [#6487] (https://github.com/hyperf/hyperf/pull/6487) 为 Crontab 的注册,增加了新的方式。
- #6488 为
Psr\Log\LoggerInterface接口增加默认的实现类。 - #6495 为
closure-command增加执行Crontab的支持。 - #6501 新增
Collection::replace()和Collection::replaceRecursive()。
优化
v3.1.6 - 2024-01-18
新增
- #6449 新增方法
ReflectionManager::getAllClassesByFinder。 - #6468 为
Crontab增加环境变量限制。 - #6471 新增方法
Arr::remove。 - #6474 新增方法
Crontab::setOptions()和Crontab::getOptions()。
优化
- #6440 优化代码
Hyperf\SocketIOServer\Parser\Decoder::decode()。 - #6472 优化代码
DispatcherFactory,当读取路由时,使用require代替require_once。 - #6473 执行
gen:swagger-schema脚本时,自动生成对应的文件夹。 - #6477 为
Crontab优化serverMutex和taskMutex的绑定逻辑。
v3.1.5 - 2024-01-04
修复
新增
- #6431 新增监听器
UnsetContextInTaskWorkerListener可以有效防止使用非协程化的 Task 进程时,数据库链接被复制的问题。
优化
v3.1.4 - 2023-12-29
修复
- #6419 修复使用熔断器时,
prepareHandler有时无法正常解析待执行方法的问题。
新增
- #6426 新增注解
RewriteReturnType,可以用来修改gen:model生成模型后,参数注释的返回值类型。
Optimized
- #6415 当使用
Base62::decode反序列化空字符串时,抛出异常InvalidArgumentException而不是TypeError。
v3.1.3 - 2023-12-21
修复
- #6389 修复使用
scout组件时,在索引设置为Null的情况下,无法正常读取Elasticsearch服务的版本号的问题。 - #6406 修复
Hyperf\Scout\Searchable没有正确引入config方法命名空间的问题。
新增
v3.1.2 - 2023-12-15
修复
- #6372 修复使用动态参数时,AOP 无法正常使用的问题。
- #6374 修复使用
rate_limit.storage配置时,RateLimitAnnotationAspect::getWeightingAnnotation()无法正常使用的问题。 - #6384 修复使用
Elasticsearchv7 以下版本且没有指定索引时,scout组件无法正常使用的问题。
新增
- #6357 为
commandconfigdevtooldi和server组件增加symfony7.x 版本的支持。 - #6373 为
GRPC客户端增加ping方法。 - #6379 为
swagger组件增加自定义attribute的能力。 - #6380 为
swagger组件增加支持收集mediaType类型验证规则的能力。
优化
- #6376 当没有安装
Swoole扩展或没有安装hyperf/polyfill-coroutine组件的情况下,允许开发者开启 Swoole 短名功能。
v3.1.1 - 2023-12-08
修复
- #6347 修复
view()方法会增加多余的content-type的问题。 - #6352 修复使用
grpc协议的nacos配置中心时,无法正常使用的问题。 - #6350 修复因
GrpcClient::runReceiveCoroutine会在recv前删除recv channel,导致其无法在后续中被使用的问题。 - #6361 修复
Hyperf\SocketIOServer\Emitter\Future无法被实例化的问题。
新增
- #6342 增加
Coroutine::fork()和Coroutine::pid()方法。 - #6360 为
swagger服务增加content-type。 - #6363 为熔断器的
fallback参数,增加callable类型的支持。
v3.1.0 - 2023-12-01
依赖库升级
我们对主要的几个依赖已经了升级
- 提高
PHP最低支持版本为8.1。 - 提高
Swoole最低支持版本为5.0。 - 提高
hyperf/engine最低版本为2.0。 - 提高
PHPUnit最低支持版本为10.0。
Swow 支持
新增
- 增加 Psr7Plus 支持。
- 增加 pest 支持。
- 新增
hyperf/helper组件。 - 新增
hyperf/polyfill-coroutine组件。 - #5815 对
hyperf/db组件,增加了pdo引擎别名mysql。 - #5849 支持数据库操作时,使用枚举进行更新和插入操作。
- #5894 #5897 为单元测试组件,增加了
model-factory支持。 - #5898 为数据库组件增加
toRawSql()方法。 - #5906 为数据库组件增加
getRawQueryLog()方法。 - #5915 新增助手函数
data_forget。 - #5914 新增方法
Str::isUrl()。 - #5918 新增方法
Arr::isList()。 - #5925 #5926 为数据库组件的模型,增加自定义为枚举的支持。
- #5930 #5934 新增
AsCommand注解和ClosureCommand。 - #5950 为
hyperf/async-queue组件新增Job::setMaxAttempts方法和dispatch方法。 - #5983 #5985 为
hyperf/cache的注解增加skipCacheResults参数,用于跳过缓存阶段。 - #5994 为
Crontab增加生命周期事件。 - #6039 为
Crontab增加语义化的规则设置。 - #6082 新增
hyperf/stdlib组件。 - #6085 为数据库组件的
Connection增加一个错误数量,确保当出现多次错误时,会在下次重新连接。 - #6106 新增了部分验证器规则。
- #6124 新增方法
Hyperf\AsyncQueue\Job::fail()。 - #6259 为
Hyperf\Database\Query\Builder\addSelect增加使用QueryBuilder的支持。 - #6301 为限流器组件,增加自定义设置存储器的能力。
优化
- 将
Prometheus组件库从默认依赖改为建议。 - #5586 为
Nacos服务注册与发现,增加GRPC能力。 - #5866 在特别场景,使用
StrCache代替Str,减少 CPU 开销,优化性能。 - #5872 使用负载均衡组件时,避免因频繁调用
refresh()方法,导致会执行多次回调函数的问题。 - #5879 #5878 为
Command组件,增加了一些新特性。 - #5901 优化
RPC协议,让id同时支持 string 和 int 两种类型。 - #5905 为
Collection::forget入参,增加更多类型支持。 - #5917 优化
Str::isUrl()方法。 - #5920 将所有存在
__toString()方法的类,增加\Stringable接口。 - #5945 使用
Apollo配置中心时,避免因为监听多个命名空间,导致频繁更新配置的问题。 - #5948 优化
Hyperf\Coroutine\Locker的实现。 - #5960 为
amqp组件的注解,增加poolName参数。 - #5972 使用
Collection::except()方法时,如果传入的 key 为 null,则默认返回所有数据。 - #5973 简化
logger组件handlers的定义。 - #6010 使用数据库组件时,如果配置的自定义转化器不存在,则抛出错误。
- #6030 为
metric的独立进程收集模式,增加一种新的收集机制,减少进程间通信次数。 - #6131 当
Crontab的实际执行单元为 Null 时,抛出异常。 - #6172 优化
ProcessManager使其running状态更加清晰。 - #6184 当时用协程风格时,为
SafeSocket增加日志配置。 - #6247 你可以从
BadRequestHttpException中获取原始数据。 - #6338 为
swagger组件新增配置项processors,用户可以追加自定义的swagger处理器。
移除
- 从
hyperf/utils中移出无用的代码。 - 移除
setAccessible方法调用,因为 PHP8.1 版本开始已经默认。 - 移除其他废弃的方法。
- #5813 不再支持 swoole 4.x 版本。
- #5859 默认移除
Hyperf\Stringable\Str中的缓存逻辑。 - #6040 移出
Hyperf\Di\Annotation\AbstractAnnotation中废弃的代码。 - #6043 移出废弃的
Hyperf\Coroutine\Traits\Container。 - #6244 移出废弃的组件
swoole-tracker。
变更
- 使用 Redis 组件时,如果设置了错误的
option,则抛出异常。 - #5847 变更
metric组件默认的Rediskey 值。 - #5943 使用
JSON RPC功能时,若使用HTTP协议,不再因为HTTP 码非200时,移出对应的节点。 - #5961 对于
Hyperf\Amqp\Result和Hyperf\Amqp\Message\Type使用枚举替代常量。 - #6022 当使用
Base62::decode反序列化不正确的数据时,会抛出InvalidArgumentException而非TypeError。 - #6128 当使用多层级目录
hyperf/config时,可以使用config('a.c')读取autoload/a/c.php中的数据。
修复
- #5771 修复
Model::updateOrInsert返回值不是boolean的问题。 - #6033 修复
RequestContext和ResponseContext无法读取其他协程的数据的问题。 - #6056 修复
Hyperf\HttpServer\Request::hasFile()不支持Swow的问题。 - #6260 修复
LoadBalancerInterface::refresh()中无法正常使用日志的问题。
即将废弃
Hyperf\DB\PgSQL\PgSQLConnection::str_replace_once设为即将废弃方法, 请使用Hyperf\DB\PgSQL\PgSQLConnection::strReplaceOnce。Hyperf\Database\PgSQL\PostgreSqlSwooleExtConnection::str_replace_once设为即将废弃方法,请使用Hyperf\Database\PgSQL\PostgreSqlSwooleExtConnection::strReplaceOnce。