1

3fe596f01f46a20ddbb324ed62600527a4e.jpg

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

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

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

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

毫秒级的注解及代码热更新,让你在开发时只管一把梭,体验与 fpm 下开发并无二致,保存就刷新,立马看到效果。

与其他专注微服务领域的 Swoole 框架不同,imi 专注单体应用开发。原因很简单:大部分公司都不需要上微服务,单体应用足矣。

imi 框架第一个版本 v0.0.1 首发于 2018 年 6 月 21 日

测试用例持续完善中,目前有 137 个测试,537 个断言。

更新内容

增强

  • 模型 Column 注解支持 updateTime 参数,设为 true 时,当save/update时,会自动写入当前时间

支持字段类型: date/time/datetime/timestamp/year/int/bigint
当字段为 int 类型,写入秒级时间戳
当字段为 bigint 类型,写入毫秒级时间戳

  • 支持使用 vendor/bin/imi 启动项目

会自动尝试加载 vendor/autoload.php,顺序如下:
工作目录
框架目录
没有则抛出错误

  • ConnectContext、Group、Session 的 Redis 驱动,默认 key 自动带上项目命名空间
  • 新增 Lock->getLockCoId() 用法
  • 优化热更新错误提示
  • 完善 TCP 测试用例
  • 优化 .travis 测试用例错误后的日志输出
  • ConnectContext 获得锁失败抛出异常
  • 优化:服务器会使用,服务器配置的 beanScan 中的命名空间列表包含的控制器

修复

  • 修复 Swoole 4.4.3 bug 导致的热更新报错问题
  • 修复 Redis Lock 问题
  • 修复 WebSocket 握手不向 RequestContext 写入 routeResult 问题
  • 修复保存 WebSocket httpRouteResult 报错问题

联系我们

Github 反馈:https://github.com/Yurunsoft/...

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

Segmentfault 提问:https://segmentfault.com/

开源中国 问答:https://www.oschina.net/question

QQ群交流:17916227 点击加群


宇润
768 声望51 粉丝

imi 框架创始人、Swoole 开发组成员、php-src 内核贡献者、TDengine 贡献者、2021 中国开源码力榜前百名。