Skip to content

Releases: imiphp/imi

日常迭代+放出 2 集视频教程

13 Dec 06:27
Compare
Choose a tag to compare

日常水一下

本周主要针对底层做了一些优化,并且修复了一些大家反馈的 bug,具体可以看下面的更新日志。

本周放出了 2 集视频教程(2.Http 请求和响应、3.Http 中间件),欢迎大家观看学习:https://www.bilibili.com/video/av78158909?p=3

另外 imi 正在进军物联网行业,阶段性放出的成果是时序数据库 InfluxDB 的 ORM:https://github.com/Yurunsoft/influxdb-orm

一个用于 InfluxDB 时序数据库的 ORM,终结没有 InfluxDB ORM 的时代。
常用操作一把梭,支持 php-fpm、Swoole 环境,一键轻松切换。
可以用于所有传统框架、所有 Swoole 框架中!

欢迎大家尝试!

更新日志

增强

  • server/reload 命令增加 -runtime 参数,可以更新运行时缓存后,再重新加载服务 (文档)

  • Text::startwith()Text::endwith() 增加是否区分大小写的参数:$caseSensitive = true (文档)

  • 定时任务捕获到异常会抛出异常

  • 异常日志支持无限级 Previous

  • 新增支持忽略扫描指定类或命名空间 (ignoreNamespace)

  • 新增 MediaType::IMAGE_ICON

  • Redis 快捷操作类支持 evalEx() 方法 (文档)

修复

  • 连接池心跳调整只针对空闲资源进行操作,防止多个协程执行出现错误

  • 修复 CronProcessWarning 问题

  • 修正几处代码语义化问题

优化

  • 优化 Statement,只有当执行 insert、replace 语句时,才获取 lastInsertId

  • 注解处理类不再对非 imi 注解做处理,与其它类库兼容性更好

  • 更新注解依赖包命名空间

双重惊喜:gRPC 服务开发支持&入门视频课程

06 Dec 06:59
Compare
Choose a tag to compare

上周做了 Http2 的支持,从服务端开发到客户端调用,imi、YurunHttp 都已实现支持 Http2 协议。

本周正式发布 gRPC 协议的服务开发、gRPC 客户端、gRPC 连接池。

为了让大家更好上手 imi 框架,今天正式推出《imi 框架新手入门视频课程》👍,每周至少更新一集。

课程地址:https://space.bilibili.com/768718/channel/detail?cid=94514

入门课程完全免费!完全免费!完全免费!

更新日志

新增

  • 新增支持 gRPC 服务开发
  • 新增支持 gRPC 客户端服务调用
  • 新增 gRPC 连接池
  • 新增单例 Http 控制器基类,支持使用 $this->request、$this->response,对象内部协程上下文自动切换
  • 新增完全免费的《imi 框架新手入门视频课程》

优化

  • 优化 Http 动作中间件
  • 优化测试代码

修复

  • 修复若干小问题

新增强大的定时任务功能

29 Nov 07:58
Compare
Choose a tag to compare

新增

  • 新增强大的定时任务功能 (文档传送门)

  • 新增支持 Http2 服务开发

  • 新增 Http2、gRPC 相关常量到 MediaType、RequestHeader

  • 支持应用上下文读写,支持只读写入

  • 新增支持获取当前代码运行在何种进程中(master、manager、worker、task_worker、process)

  • 新增支持正则路由(#31)

  • 支持自定义错误级别,将错误转为异常捕获

优化

  • HttpErrorHandler 中使用服务器上文容器获取执行器实例

  • 支持注入修改默认的 ActionMiddleware

  • 支持给容器对象类手动绑定

  • 进程退出自动释放资源

  • 事件监听、取消监听支持传入数组指定多个事件

  • 新增支持在注解设定进程是否默认启用协程

  • 优化 parseDotRule 性能 (#32)

修复

  • 修复会获取到不应该存在的请求头问题

  • 修复锁不在同一个协程无法解锁的问题

新增连接池心跳机制

15 Nov 07:56
Compare
Choose a tag to compare

2019年度最受欢迎中国开源软件评选,投一票 imi 吧,谢谢!
https://www.oschina.net/project/top_cn_2019#imi

新增

  • 新增支持通过beans注入配置,随服务启动进程

  • 新增 @PoolClean 注解,可以在 Tool、Process 的入口方法上使用,用于剔除或保留指定连接池

  • 新增支持连接池心跳机制,支持设置当获取资源时是否检测连接状态

优化

  • 优化 Statement 的写入和清理机制

  • 优化视图处理性能

  • 优化动作执行参数处理效率

  • 热更新不占用连接池

  • 优化模型转数组性能

  • process/start 工具,现在的返回码是进程返回的

  • 优化:关闭连接池时停止心跳,并且清空资源池

  • 连接池的自动GC和心跳,在非 worker 进程中,只要有协程运行就能启用

v1.0.18

08 Nov 07:08
Compare
Choose a tag to compare

新增

  • 新增一个中间件,支持当单个请求超过最大执行时间,触发超时处理

  • 新增支持 WebSocket、TCP、UDP 的路由未找到处理

优化

  • 优化 Http 未找到路由处理

  • 优化模型,update() 时不更新主键值

  • 优化当监听端口时,自动启用http、websocket协议

修复

  • 修复将statement设为可用的问题

  • 修正 ExtractData 注入目标

  • 修复 Request->getUri() 协议无法识别 http/https/ws/wss 问题

优化及修复问题

01 Nov 07:57
Compare
Choose a tag to compare

新增

  • 启动提示新增网卡ip显示,优化启动提示显示 #29

优化

  • 重构 RequestContext,使用 Swoole 内置的协程上下文管理方法实现。同时废除 create、destroy、exists 方法

  • 优化测试用例服务器在多核情况下的启动效率

  • 优化一些代码

修复

  • 修复模型增删改查字段名为关键字的问题

  • 修复联合主键的模型使用 find() 方法的问题

  • 修复模型 update() 方法可能存在的问题

  • 修复控制器单例模式问题

紧急修复单例控制器问题

25 Oct 07:53
Compare
Choose a tag to compare

紧急修复单例控制器问题

支持接管 $_GET、$_POST等超全局变量

25 Oct 06:15
Compare
Choose a tag to compare

新增

  • 新增支持查询器别名,减少查询器连贯操作重复构建步骤

  • 新增超全局变量 Hook,将 @app.beans.SuperGlobals.enable 配置为 true,即可在代码中直接使用:$_GET、$_POST、$_COOKIE、$_REQUEST、$_SESSION、$_SERVER、$_FILES

  • 新增模型 Meta 类,用于在模型类中方便获取模型相关信息

  • Http/TCP/UDP/WS 控制器支持设定是否为单例模式

  • 新增 Model::dbQuery() 方法,查询结果为数组而不是当前类实例对象

  • 新增 @ServerInject 注解

优化

  • 优化模型代码

  • 去除无用代码

  • 废除旧的 gzip 响应方法,优化代码

  • 移除 Log traceMinimum

修复

  • 修复分页查询,页码不为 1 时,总记录数和总页数显示为 0 的问题

  • 修复模型 parseSaveData 事件中,修改 data 值会改变模型属性值问题

日常迭代版本

18 Oct 05:26
Compare
Choose a tag to compare

又周五了,最近学习 imi 的用户越来越多,imi 也在变得越来越好。预祝大家周末快乐~

以下是此次更新日志:

新增

  • 新增模型性能测试

  • 新增 Redis 模型测试用例

  • 模型生成工具新增-entity参数,是否开启使用驼峰命名,默认开启 (#27)

优化

  • 完善 Redis 模型方法返回值

  • 当连接池不使用负载均衡(只有1个连接配置)时,直接返回资源

  • 优化模型

  • 优化测试用例

  • 将树形模型的 getAssocList() 封装为 ArrayUtil::toTreeAssoc() 通用方法

修复

  • 修复 Session Cookie lifetime 设为 0 无效问题

  • 修复使用 Redis 模型时,调用 ModelManager::getFields() 的问题

  • 修复 ArrayUtil::recursiveMerge(),合并以数字为键的数组时,丢失键的问题

新增支持 Swoole 高性能协程服务器

27 Sep 05:03
Compare
Choose a tag to compare

本周主要推出了一个进程池和高性能协程服务器,相比传统模式,即便是跟 BASE 模式相比,也有非常大的性能提升。

新增

优化

  • 优化 http 路由性能,当路由数量多时效果明显

修复

  • 修复部分情况下的热更新进程残留问题