Releases: imiphp/imi
v1.1.2
v1.1.1
重磅推出 Partial 概念!!!
这两周依然远程办公,忙于各种项目。这周更新的 Partial
很强大实用,可以看下的。
imi 视频教程已更新到第九集《模型和ORM》:https://www.bilibili.com/video/av78158909/
更新内容
增强
优化
-
优化 Redis 连接池资源类
-
优化 Redis 连接池密码判断,现在为空字符串时,不会尝试密码登录
-
优化树形模型代码
-
优化热更新进程逻辑
修复
- 修复 Inotify 热更新目录不存在报错问题
Partial
imi 的 Partial
思想是从 C# 中借鉴而来。Partial
可以将一个类的部分,分成几个文件,分别书写。
截止目前最新的 PHP 7.4 版本,还未在语言层面上支持 Partial
特性。
但依赖于 imi 强大的容器对象,终于在 PHP 中实现了 Partial
特性。
使用非常简单,使用 trait
编写,加上 @Partial
注解,可以方便地注入。
Partial 使用场景
-
多人协作开发,修改同一个类文件难免有冲突。如果事先定义好接口,将不同方法分配给几个人开发,每个人只需要在自己的文件中编写,不用担心冲突问题。
-
类的方法特别多,并且无法很好地拆分。这时候分到几个文件中,会相对比较好维护一些。
-
有一些类是通过工具生成的,如果我们在类里编写了自己的代码,又需要重新工具生成一些内容,这时候会覆盖我们编写的代码。使用
Partial
在另一个文件开发,不会被覆盖掉。
在
Partial
概念引入 imi 框架前,imi 的模型生成工具将生成代码放在父类,用户在子类中编写代码。
值得更新
立春!春回大地,万物复苏!
增强
-
新增 Imi::getNamespacePaths() 获取所有命名空间路径的可能性
-
新增 File::absolute(),相比 realpath() 函数,在文件不存在时也可以有效
-
支持加载项目命名空间映射为多个目录情况下的 .env 配置文件
-
跨域中间件 OptionsMiddleware 支持多个 allowOrigin
优化
- 优化命名空间指向多个目录的场景
修复
-
修复随 Manager 启动进程别名问题
-
修复协程上下文的响应代理类问题
新增本地连接上下文存储处理器
准备欢度春节(划水),春节前最后一个版本,放完假恢复更新
-
新增本地连接上下文存储处理器:ConnectContextLocal,可用于 SWOOLE_BASE 模式
-
新增 ElasticSearch 文档
-
尝试修复一个问题
-
修复 DEPRECATED 提示
周常迭代
推出 JWT 组件一把梭
每周唠叨
本周推出了 imi-jwt 组件,支持在 imi 框架中非常方便地接入 jwt
但是 jwt 绝不是 session 的替代品!!!请大家一定要弄清楚!!!
最近很忙,忙于开发项目,项目当然是用 imi 框架在开发……祝大家2020年头发依然健在!
免费视频教程
【宇润】基于 PHP + Swoole 的 imi 框架新手入门课程 | 每周五更新 | 从秃头到满头秀发,让你有更多时间上班划水,脱单不再是梦
戳我免费看从秃头到满头秀发的 imi 框架教程https://www.bilibili.com/video/av78158909
每周五晚上,更新一集哦~
更新日志
增强
-
新增 imi-jwt 组件,支持在 imi 框架中非常方便地接入 jwt (传送门)
-
新增支持监听事务提交和回滚事件 (文档)
-
Event->off() 方法现在可以不传第二个参数,允许清空事件中所有监听 (文档)
-
WebSocket 控制器和动作注解支持限定握手路由地址(比如某个 WS 通讯处理,只有握手某个 url 时才可以触发)(文档)
-
WebSocket 握手时向 ConnectContext 写入 uri 对象
-
新增 TNotRequiredDataToProperty,相比 TDataToProperty 允许不传构造方法参数
优化
-
重构:分离数据库事务管理对象
-
优化 Facade 生成类注释的,参数和返回值可为空、参数默认值
-
优化当 Main 类不存在时的异常提示文字
修复
-
修复握手响应返回后写入连接上下文,导致有时刚握手完 WebSocket 通讯获取连接上下文数据不正确的问题
-
修复事务嵌套回滚bug
-
修复部分场景下的参数类型问题
-
修复 ConnectContext::muiltiSet() 方法写入无效问题
-
修复多个服务使用 http session 时的配置冲突问题
新增支持 AMQP 消息队列组件
每周唠叨
本周推出了 imi-amqp 组件,支持在 imi 框架中使用支持 AMQP 协议的消息队列,如:RabbitMQ
从此你就可以在 imi 框架里一把梭使用消息队列啦!
免费视频教程
【宇润】基于 PHP + Swoole 的 imi 框架新手入门课程 | 每周五更新 | 从秃头到满头秀发,让你有更多时间上班划水,脱单不再是梦
戳我免费看从秃头到满头秀发的 imi 框架教程👉https://www.bilibili.com/video/av78158909
每周四或五晚上,更新至少一集~
更新日志
增强
-
新增 imi-amqp 组件 (传送门)
-
Redis 缓存支持设定 replaceDot,将 key 中的 "." 替换为 ":" (文档)
-
Redis 缓存支持设定 prefix 缓存键前缀 (文档)
-
增强进程随服务启动 (文档)
优化
- 优化一些代码
修复
-
修复连接池资源项没有锁定问题
-
修复连接池心跳检测有时引起报错的问题
-
修复 Redis ping() 方法,在扩展版本为 5.x 时,返回值判断问题
提升 MacOS 及部分 Linux 发行版兼容性
每周唠叨
本周主要做了一些兼容性优化工作,方便大家在各种系统中使用 imi 框架开发。
免费视频教程
【宇润】基于 PHP + Swoole 的 imi 框架新手入门课程 | 每周五更新 | 从秃头到满头秀发,让你有更多时间上班划水,脱单不再是梦
戳我免费看从秃头到满头秀发的 imi 框架教程👉https://www.bilibili.com/video/av78158909
已更新第 4 集,每周四晚上更新至少一集~
更新日志
增强
- 新增支持限制日志的 trace 条目数量,默认为 -1 不限制。属性名:traceLimit
优化
-
优化 MacOS 及部分 Linux 发行版兼容性
-
调整 Cron 进程 sock 文件名
修复
-
修复 Bean 类一些问题
-
修复有时注解不生效问题
-
修复异常无法记录问题
-
修复 MacOS 系统无法使用热更新问题,采用 unix socket 通讯
-
修复验证器注解
callable={@Inject("BeanName"), "methodName"}
无效问题 -
修复在有些环境下,imi 命令行生成不正确的问题