内容简介:最近 imi 主要更新内容是针对数据库、Redis、模型,因为实战中发现了很多理想化的不足,为此加入了一些新特性支持。数据库支持主从啦!原连接池名后加.slave即为从库配置,非必设。如果配置了从库,默认查询走从库,增删改走主库。如果在事务中,默认都走主库。
最近 imi 主要更新内容是针对数据库、 Redis 、模型,因为实战中发现了很多理想化的不足,为此加入了一些新特性支持。
数据库支持主从啦!原连接池名后加.slave即为从库配置,非必设。如果配置了从库,默认查询走从库,增删改走主库。如果在事务中,默认都走主库。
v0.1.1 更新内容:
新增
-
新增支持配置数据库主从连接池,智能选择对应库连接
原连接池名后加.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
介绍
IMI 是基于 Swoole 开发的协程 PHP 开发框架,完美支持 Http、WebSocket、TCP、UDP 开发,拥有常驻内存、协程异步非阻塞IO等优点。
IMI 框架文档丰富,上手容易,致力于让开发者跟使用传统 MVC 框架一样顺手。
IMI 框架底层开发使用了强类型,易维护,性能更强。支持 Aop ,支持使用注解和配置文件注入,完全遵守 PSR-3、4、7、11、15、16 标准规范。
框架的扩展性强,开发者可以根据实际需求,自行开发相关驱动进行扩展。不止于框架本身提供的功能和组件!
文档手册: https://doc.imiphp.com/
代码仓库:
码云: https://gitee.com/yurunsoft/IMI
Github: https://github.com/Yurunsoft/IMI
空项目: https://gitee.com/yurunsoft/empty-imi-demo
功能Demo: https://gitee.com/yurunsoft/imi-demo
寻有缘人
想要加入我们吗?开源项目不能只靠一两个人,而是要靠大家的努力来完善~
我们需要你的加入,你可以做的事(包括但不限于以下):
-
纠正拼写、错别字
-
完善注释
-
bug修复
-
功能开发
-
教程、博客分享
最新代码以 dev
分支为准,提交 PR
也请合并至 dev
分支!
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。