imi v0.3 发布,自动管理请求上下文,新增参数过滤器

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

内容简介:亲爱朋友们,我又回来了,想死你们啦!2个多月没有刷版本号,imi 并没有凉,而是因为我实在太忙啦!

imi v0.3 发布,自动管理请求上下文,新增参数过滤器

亲爱朋友们,我又回来了,想死你们啦!

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 存在的问题

介绍

imi 是基于 PHP 协程应用开发框架,它支持 HttpApi、WebSocket、TCP、UDP 应用开发。

由 Swoole 提供强力驱动,Swoole 拥有常驻内存、协程非阻塞 IO 等特性。

框架遵守 PSR 标准规范,提供 AOP、注解、连接池、请求上下文管理、ORM模型等常用组件。

imi 的 模型支持关联关系的定义 ,增删改查一把梭!

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

文档手册: https://doc.imiphp.com/

代码仓库:

码云: https://gitee.com/yurunsoft/IMI

Github: https://github.com/Yurunsoft/IMI

Demo: https://gitee.com/yurunsoft/imi-demo

imi 组件仓库: https://github.com/imiphp

imi名字由来

宇润我是一个小米公司、小米产品、雷军的粉丝。我对 imi 的正确分词是i mi。谐音爱米,中式英语的意思是我米。

寻有缘人

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

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


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

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

Dojo权威指南

Dojo权威指南

拉塞尔 / 李松峰、李丽 / 机械工业出版社 / 2009-4 / 79.00元

通过使用Dojo这个工业强度的JavaScript工具箱,我们可以比使用其他任何Ajax框架更高效、更容易地创建JavaScript或Ajax驱动的应用程序和站点。 《Dojo权威指南》向读者展示了如何充分利用Dojo工具箱中包含的大量实用特性,以前所未有的效率开发出功能丰富、响应敏捷的Web应用程序。读者通过《Dojo权威指南》能够学习到创建复杂布局和表单控件(常见于高级桌面应用程序)的技......一起来看看 《Dojo权威指南》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

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

在线 XML 格式化压缩工具

html转js在线工具
html转js在线工具

html转js在线工具