Skip to content

支持主从,DB及模型大量提升和改进

Compare
Choose a tag to compare
@Yurunsoft Yurunsoft released this 12 Oct 02:58

新增

  • 新增支持配置数据库主从连接池,智能选择对应库连接

原连接池名后加.slave即为从库配置,非必设;如果配置了,默认查询走从库,增删改走主库;如果在事务中,默认都走主库

  • 新增模型写入数据处理前后事件(BeforeParseDataAfterParseData

  • 新增 ModelEvents::AFTER_QUERY 事件监听接口

  • 新增支持 ExtractProperty 注解,提取字段中的属性到当前模型

  • 新增模型序列化配置注解(SerializableSerializables

  • 新增支持为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信息格式

  • 新增IHashCodeTHashCode,连接池资源用它

  • 调整 EventParam 类属性命名,减少冲突可能性

  • 调整使用 Redis 的键命名(连接上下文、连接分组、Session)

  • 调整连接上下文采用 HASH 存储

  • 调整连接分组采用 SET 存储

修复

  • 修复模型类非static方法下,调用事件存在的问题

  • 修复模型类非static方法下,调用query()方法错误的问题

  • 修复模型关联更新orphanRemoval失效问题

  • 修复模型序列化问题

  • 修复 IEvent 方法带有 static 的问题

  • 修复一处引用返回值潜在问题

不兼容更改

  • 调整模型静态方法事件名

原本为类名事件名,现在是类名:事件名

  • 修正数据库操作 join 方法默认改为 inner join