Skip to content

自动管理请求上下文,新增参数过滤器

Compare
Choose a tag to compare
@Yurunsoft Yurunsoft released this 22 Feb 02:22

2个多月没有刷版本号,imi并没有凉,而是因为我实在太忙啦!

我们公司项目使用imi已经上线,这两个多月大部分时候是针对imi做bug修复,以及开发体验的细节上的提升。

这次 v0.3 版本发布是这两个月工作成果的一次总结,在此感谢群友们为imi做出的贡献!

最后,距离imi的 v1.0 正式版发布越来越近啦!

更新日志

新增

  • 新增方法参数过滤器FilterArg

  • 新增ArrayUtil::random()方法,获取随机成员

  • 新增imigo函数(启动一个协程,自动创建和销毁上下文)

  • 新增imiCallable函数(为传入的回调自动创建和销毁上下文,并返回新的回调)

  • 新增IMI.REQUEST_CONTENT.CREATE、IMI.REQUEST_CONTENT.DESTROY事件

  • 新增注解:DbInject、RedisInject、PoolResource
    可用于注入连接池中的资源对象到属性

  • 新增支持根据记录数计算总页数,Pagination->calcPageCount

  • 缓存注解允许指定hash方法,默认为md5

调整/增强

  • 调整模型生成逻辑,生成表结构定义在基类,实际的模型类继承基类
    修改了表结构重新生成模型,也不用担心会覆盖掉模型类中自己写的方法

  • 现在注入方法的Before也可以修改参数了

  • ExtractData 注解从此脱离 HttpValidation 注解依赖

  • 调整默认runtime路径为:项目命名空间根下的.runtime目录中
    避免默认在/tmp目录中,可能被linux内置清理给清掉了

  • 热更新进程默认将runtime目录加入排除

  • 调整连接池配置maxActiveTime默认值为null,新增maxUsedTime参数

  • 调整连接池配置,当gcInterval为null时,不启动定时器

  • 禁止在 MacOS 下设置进程名,解决报错问题

  • 连接池配置默认minResources调整为1

  • 数据库查询器的join方法现在支持对表名使用as设定别名
    例:Db::query()->join('table as alias')

  • 为 PDO Statement 兼容支持 bool 类型值代入

  • Cache相关注解的key属性,支持用{:args}代入所有方法参数的 hash 值

  • 当使用Swoole协程Redis时,支持使用_serialize()方法

  • 新增路由初始化时的服务器类型判断

  • 调整热更新检测用到的文件路径到runtime中

  • View 注解的 renderType 属性默认设置从 html 改为 json
    原因:使用 imi 更推荐是用于开发接口,而不是用于后端页面渲染

修复

  • 修正错误的注释

  • 修复Session中间件潜在问题

  • 修复ExtractData注解在特定情况无效问题

  • 修复内存表模型,当属性名和Column注解中设定不一致时的问题

  • 修复使用内存表模型时的Trying to get property of non-object问题

  • 修复buildRuntime问题

  • 修复Statement问题

  • 修复数据库连接回收后还有残留的问题(Statement缓存化的原因)

  • 修复连接池资源释放,以及并发情况下数量超过maxResources配置的问题

  • 修复池子重复初始化问题

  • 修复数据库关键词处理逻辑问题

  • 修复当删除文件时,热更新报错问题

  • 修复一个notice问题

  • 修复部分场景下,框架内部无法正常启动命令行

  • 修复查询器leftJoin()方法实际为inner join的问题

  • 修复WS、TCP、UDP注解中间件问题

  • 修复缓存功能在非服务器上下文下无法使用的问题

  • 修复使用 ? 预处理SQL的问题

  • 修复 imi/buildImiRuntime 后存在的注解修改无效问题

  • 修复重复 send() 导致的 Http request is finished 问题

  • 修复WebSocket无法握手问题

  • 修复少数环境中无法正常启动项目的问题

  • 修复配置文件注入属性的问题

  • 修复 logCacheNumber 数字判定 bug

  • 修复 Call to a member function isVariadic() on null 问题

  • 修复 TCP、UDP 作为子服务器时的 setting 问题

  • 修复配置路由问题

  • 修复进程池进程名称问题

  • 修复命令行参数解析不严谨的问题

  • 修复类没有被use的问题

  • 修复验证失败时,buildMessage存在的问题