支持主从,DB及模型大量提升和改进
新增
- 新增支持配置数据库主从连接池,智能选择对应库连接
原连接池名后加.slave即为从库配置,非必设;如果配置了,默认查询走从库,增删改走主库;如果在事务中,默认都走主库
-
新增模型写入数据处理前后事件(
BeforeParseData
、AfterParseData
) -
新增
ModelEvents::AFTER_QUERY
事件监听接口 -
新增支持
ExtractProperty
注解,提取字段中的属性到当前模型 -
新增模型序列化配置注解(
Serializable
、Serializables
) -
新增支持为
Transaction
注解,设定事务类型及是否自动提交事务
Transaction(autoCommit="自动提交事务true/false,默认为true")
事务类型:
事务嵌套(默认)
Transaction(type=TransactionType::NESTING)
该方法必须在事务中被调用
Transaction(type=TransactionType::REQUIREMENT)
如果当前不在事务中则开启事务
Transaction(type=TransactionType::AUTO)
-
新增支持 Swoole Redis 使用
scan object sort migrate hscan sscan zsca
-
新增启动时显示系统、PHP、Swoole、时区信息
-
新增服务启动时显示工作进程数量
优化
-
调整__CLASS__、get_called_class()为面向对象写法
-
EventParam
支持引用传参 -
ModelEvents::AFTER_FIND
事件支持修改model -
增加事务注解处理容错判断
-
新增数据库连接回收时,回滚事务
-
当在模型类中使用
Transaction
注解时,不指定连接池名称,则获取模型连接池名称 -
增加数据库资源open方法返回值
-
优化Db容错
-
调整和优化连接池,现在会抛出获取资源失败的异常
-
调整SQL信息格式
-
新增
IHashCode
、THashCode
,连接池资源用它 -
调整
EventParam
类属性命名,减少冲突可能性 -
调整使用 Redis 的键命名(连接上下文、连接分组、Session)
-
调整连接上下文采用 HASH 存储
-
调整连接分组采用 SET 存储
修复
-
修复模型类非static方法下,调用事件存在的问题
-
修复模型类非static方法下,调用
query()
方法错误的问题 -
修复模型关联更新
orphanRemoval
失效问题 -
修复模型序列化问题
-
修复 IEvent 方法带有 static 的问题
-
修复一处引用返回值潜在问题
不兼容更改
- 调整模型静态方法事件名
原本为
类名事件名
,现在是类名:事件名
- 修正数据库操作 join 方法默认改为 inner join