imi v0.1.1 发布:支持主从,DB 及模型大量提升和改进

栏目: PHP · 发布时间: 7年前

内容简介:最近 imi 主要更新内容是针对数据库、Redis、模型,因为实战中发现了很多理想化的不足,为此加入了一些新特性支持。数据库支持主从啦!原连接池名后加.slave即为从库配置,非必设。如果配置了从库,默认查询走从库,增删改走主库。如果在事务中,默认都走主库。

imi v0.1.1 发布:支持主从,DB 及模型大量提升和改进

最近 imi 主要更新内容是针对数据库、 Redis 、模型,因为实战中发现了很多理想化的不足,为此加入了一些新特性支持。

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

v0.1.1 更新内容:

新增

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

原连接池名后加.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

介绍

IMI 是基于 Swoole 开发的协程 PHP 开发框架,完美支持 Http、WebSocket、TCP、UDP 开发,拥有常驻内存、协程异步非阻塞IO等优点。

IMI 框架文档丰富,上手容易,致力于让开发者跟使用传统 MVC 框架一样顺手。

IMI 框架底层开发使用了强类型,易维护,性能更强。支持 Aop ,支持使用注解和配置文件注入,完全遵守 PSR-3、4、7、11、15、16 标准规范。

框架的扩展性强,开发者可以根据实际需求,自行开发相关驱动进行扩展。不止于框架本身提供的功能和组件!

官网: https://www.imiphp.com/

文档手册: 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

寻有缘人

想要加入我们吗?开源项目不能只靠一两个人,而是要靠大家的努力来完善~

我们需要你的加入,你可以做的事(包括但不限于以下):

最新代码以 dev 分支为准,提交  PR 也请合并至  dev 分支!


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Java程序设计

Java程序设计

宋中山 严千钧 等编 / 清华大学出版社 / 2005-8 / 27.00元

本书全面、系统地介绍了Java语言的基本概念、基本语法和编程方法。主要内容包括:Java语言概述、数据类型与运算符、流程控制语句、类与对象、继承与多态、异常处理、工具类和算法、Applet小应用程序、图形用户界面、输入和输出、Java多线程以及Java高级编程。每章后面附有习题,读者可参考使用。 本书内容丰富,结构合理,语言简洁,深入浅出,通俗易懂。基础知识与程序实例相结合,示例典型......一起来看看 《Java程序设计》 这本书的介绍吧!

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具