v2.0-v2.1 升级指南
目录
v2.0 是一个非常成功的 LTS 版本,进行了底层重构,增加了强类型规范化以及功能增强,让我们的项目拥有了更强大的能力。
相比于 v2.0 版本,v2.1 版本不会有太大的不兼容性更改,可以在参考本页说明的情况下平滑升级。
不兼容的更改
- Swoole 最低版本从 4.7 升级为 4.8。
RedisModel
、MemoryTableModel
初始化数据时,@Column
注解配置的type
将不生效。json
、list
类型字段不会自动处理,此特性仅支持数据库表模型。- 在使用
\Imi\Swoole\Process\Pool
调用start()
方法启动进程池后,请使用wait()
方法等待进程池结束。 - Swoole CronProcess 的 Unix Socket 文件名已更改。
新功能
v2.1.63
发布日期: 2024-00-00
- 支持后置 Where 条件
v2.1.61
发布日期: 2024-02-19
v2.1.60
发布日期: 2024-01-19
- 支持 YurunHttp 5.0 (#672)
v2.1.58
发布日期: 2023-11-20
- PHP 原生枚举深度支持 (#646)
v2.1.56
发布日期: 2023-10-14
v2.1.53
发布日期: 2023-09-01
v2.1.52
发布日期: 2023-08-18
- 支持在分页查询时指定查询记录数量时的字段 (#575)
v2.1.51
发布日期: 2023-08-05
- 模型关联支持跨数据库和跨连接池场景,模型关联注解新增
poolName
参数 - 模型
@JsonDecode
注解新增arrayWrap
参数 (#569)
v2.1.49
发布日期: 2023-07-10
- Redis 模型支持安全删除记录 (#555)
- Redis 模型
hash_object
模式支持设置字段类型(json
/list
/set
) (文档) (#560) - Redis 模型
hash_object
模式在不启用 redis 序列化情况下支持强类型字段 (#560) - RedisModel::find()、generateKey()、generateMember() 改为参数非必传 (#560)
v2.1.48
发布日期: 2023-07-03
- 支持 MySQL 高性能分页查询(大表分页类) (#542)
- 生成模型相关改进 (#537)
- 数据库迁移组件(imi-migration),支持一种新的迁移方式
v2.1.47
发布日期: 2023-06-09
- 支持 PostgreSQL 生成模型配置
bean
和incrUpdate
参数 (#524) - 增强:
Imi\Lock\Lock
类中的相关方法增加$lockId
参数 (#520) - pgsql 模型字段的创建更新时间
time
、timetz
、timestamp
、timest
支持设置时间精度 (#527) - 模型自动创建时间和更新时间传入值时,不再自动更新时间 (#525)
- 支持绑定上传文件对象到控制器方法参数 (#531)
- 数据库查询构建器支持全文搜索(MySQL+PostgreSQL) (#533)
v2.1.46
发布日期: 2023-05-12
- 模型查询构建器
Model::query()
、Model::dbQuery()
支持定义表别名 (文档) - 新增使用 Protobuf 的 gRPC HTTP 网关客户端
Imi\Util\Random
新增float()
和bytes()
方法
v2.1.45
发布日期: 2023-04-29
v2.1.43
发布日期: 2023-04-07
v2.1.41
发布日期: 2023-03-31
- 查询构建器
fieldRaw()
、joinRaw()
、whereRaw()
、orWhereRaw()
、groupRaw()
、havingRaw()
、orderRaw()
、setFieldExp()
、setFieldInc()
、setFieldDec()
支持传参数绑定
v2.1.40
发布日期: 2023-03-24
v2.1.39
发布日期: 2023-03-10
- 支持 MySQL 查询构建器 insert ignore into (#476)
v2.1.36
发布日期: 2023-02-03
v2.1.34
发布日期: 2022-12-16
v2.1.33
发布日期: 2022-12-03
ProtobufUtil::getMessageValue()
支持可遍历对象,无法处理的原样返回
v2.1.32
发布日期: 2022-11-25
- Listener 注解支持设置事件仅触发一次 (#458)
v2.1.31
发布日期: 2022-11-18
- 兼容 PHP 8.2 (#441)
- 支持 PHP 8.2 交叉类型
- 支持 PHP 8.2 只读类
v2.1.30
发布日期: 2022-10-28
- 支持 AOP 切入带有引用返回值的方法 (#450)
- 新增
imi-influxdb
组件 - 支持服务指标监控 InfluxDB 驱动
- 支持服务指标监控 TDengine InfluxDB 兼容驱动
v2.1.29
发布日期: 2022-10-14
- 服务发现(负载均衡)
- 调用链路追踪 OpenTracing(Zipkin、Jaeger)
- 重构骨架项目:增加模块划分、自动格式化、代码静态分析、自动化测试,更加符合实际项目的开发
Imi\Grpc\Util\ProtobufUtil::setMessageData()
增加参数$ignoreUnknown
,可以忽略未知字段- 新增
Imi\Grpc\Util\ProtobufUtil::newMessage()
和Imi\Grpc\Util\ProtobufUtil::newMessageArray()
- 增强
BeanFactory::getObjectClass()
支持字符串 - 增强
@Column
注解的createTime
、updateTime
支持传入int
值,表示时间精度,仅bigint
、int8
有效 (#445)
v2.1.28
发布日期: 2022-09-23
- 新增数据库迁移
- 支持在非 cli 环境执行
Imi\Util\Imi::getImiCmd()
、Imi\Util\Imi::getImiCmdArray()
v2.1.27
发布日期: 2022-09-16
v2.1.24
发布日期: 2022-08-27
- 支持 WebSocket 二进制协议
- 新增支持键值过期的存储对象
Imi\Util\ExpiredStorage
- 请求上下文缓存驱动
v2.1.23
发布日期: 2022-08-20
- 支持模型序列化 (#412)
v2.1.22
发布日期: 2022-08-13
- gRPC 的 HTTP 代理网关
- 新增命令行工具的
--bootstrap
参数 - 支持在 Swoole BASE 模式下获取所有 Worker 连接数
- 支持模型增量更新
v2.1.20
发布日期: 2022-07-22
- PDO 驱动绑定值支持
resource
类型使用\PDO::PARAM_LOB
v2.1.19
发布日期: 2022-07-15
Db
类添加一个工具方法Db::debugSql
v2.1.18
发布日期: 2022-07-02
- 模型生成支持 MySQL、PgSQL 虚拟列
- 容器增加3个方法:set、newInstance、bindCallable
- 请求上下文增加2个方法:remember、unset (请求上下文、连接上下文)
v2.1.17
发布日期: 2022-06-24
- 支持配置启动服务时检测连接是否可用 (
@app.server.checkPoolResource
)
v2.1.16
发布日期: 2022-06-17
v2.1.15
发布日期: 2022-06-10
- 新增
@EnvValue
注解 (文档)
v2.1.11
发布日期: 2022-05-07
- 在 Model 中支持 MySQL 数据类型
set
v2.1.9
发布日期: 2022-04-16
v2.1.8
发布日期: 2022-04-08
v2.1.7
发布日期: 2022-04-02
v2.1.6
发布日期: 2022-03-20
v2.1.5
发布日期: 2022-03-11
- 实现 WebSocket、Tcp、Udp 异常处理器
v2.1.4
发布日期: 2022-03-04
v2.1.2
发布日期: 2022-02-18
v2.1.1
发布日期: 2022-02-12
- 定时任务的最小、最大延迟执行秒数
- Swoole WebSocket Server 支持
syncConnect
- 支持为数据库连接设置表前缀
- 模型注解
JsonEncode
增强,增加JsonDecode
注解 - 支持从
Query
构建 SQL 语句 - 新增
Model::exists()
用于判断记录是否存在 - 支持设置字段为
createTime
,插入记录时自动设置时间
v2.1.0
发布日期: 2022-01-21