imi

imi 是一款支持长连接微服务分布式的 PHP 开发框架,它可以运行在 PHP-FPM、Swoole、Workerman、RoadRunner 等多种容器环境下。它支持 HttpApi、WebSocket、TCP、UDP、MQTT 服务的开发。特别适合互联网微服务、即时通讯聊天im、物联网等场景!QQ群:17916227

OTHER License

Downloads
54.5K
Stars
1.2K
Committers
38

Bot releases are hidden (Show)

imi - v2.1.10

Published by Yurunsoft over 2 years ago

优化

  • 优化 amqp (#325)

  • 调整 Grpc 组件目录结构 (#331)

  • 优化创建子服务器 (#329)

修复

  • 修复 Workerman 守护进程模式运行,记录日志导致进程退出重启 (#328)

  • 修复 Swoole BASE 模式只有一个进程时,没有输出监听端口信息 (#332)

  • 修复进程启动和停止日志中的标签 (#330)

imi - v2.0.32

Published by Yurunsoft over 2 years ago

优化

  • 优化 amqp (#325)

  • 调整 Grpc 组件目录结构 (#331)

修复

  • 修复 Workerman 守护进程模式运行,记录日志导致进程退出重启 (#328)

  • 修复 Swoole BASE 模式只有一个进程时,没有输出监听端口信息 (#332)

imi - v2.1.9

Published by Yurunsoft over 2 years ago

增强

  • 支持在 Swoole、Workerman 进程启动和停止时输出日志 (#320)

  • CronUtil 支持检测任务状态 和 获取所有激活任务列表 (#327) by @hurricanetx

修复

  • 修复无法移除手动增加的定时任务 (#323)

  • 修复使用SwooleDB引擎之后报 参数数量不一致 的错误 (#326) by @hurricanetx

  • 修复 workerman-gateway Swoole worker 会在 task 进程中运行的问题 (#322)

  • 修复启动服务后并发压测,概率出现响应内容为空 (#319)

  • 修复使用 AMQP 在进程退出时可能卡死并输出一堆 WARNING,兼容非 Swoole (#318)

  • 修复 Swoole PgSql checkCodeIsOffline()

New Contributors

Full Changelog: https://github.com/imiphp/imi/compare/v2.1.8...v2.1.9

imi - v2.0.31

Published by Yurunsoft over 2 years ago

修复

  • 修复无法移除手动增加的定时任务 (#323)

  • 修复使用SwooleDB引擎之后报 参数数量不一致 的错误 (#326) by @hurricanetx

  • 修复 workerman-gateway Swoole worker 会在 task 进程中运行的问题 (#322)

  • 修复启动服务后并发压测,概率出现响应内容为空 (#319)

  • 修复使用 AMQP 在进程退出时可能卡死并输出一堆 WARNING,兼容非 Swoole (#318)

  • 修复 Swoole PgSql checkCodeIsOffline()

imi - v2.1.8

Published by Yurunsoft over 2 years ago

增强

  • 模型关联支持在查询结果中,包含被软删除的数据 (#317)

优化

  • 优化 AMQP
  • 优化 Swoole 队列消费者

修复

  • 修复 enable_coroutine=false 时初始化 worker 报错 #316
imi - v2.0.30

Published by Yurunsoft over 2 years ago

优化

  • 优化 AMQP
  • 优化 Swoole 队列消费者

修复

  • 修复 enable_coroutine=false 时初始化 worker 报错 #316
imi - v2.1.7

Published by Yurunsoft over 2 years ago

mqtt 项目示例已经支持 v2.1:https://github.com/imiphp/imi-project-mqtt

composer create-project imiphp/project-mqtt:~2.1.0

更新日志

增强

  • 新增 Imi\dump() 调试输出函数 (#306)

  • 支持单文件运行 imi (#308)

  • 新增一个更加方便遍历分块查询的方法 chunkEach() (#311)

  • 支持验证器动态数组对象验证 (#313)

  • Db 构建器添加 find, value, column 查询方法 by @NHZEX (#314)

  • 新增服务启动时,输出注册到 imi 的组件信息、修复及优化 (#315)

优化

  • 移除 imi-macro 强制依赖 (#312)

  • 优化 AMQPResource 安全关闭

  • 优化销毁协程上下文时捕获异常记录日志

  • 优化一些代码

修复

  • 修复 Call to undefined method Swoole\Coroutine\MySQL::checkCodeIsOffline()

  • 修复 jwt 组件 PHP 8.1 兼容

  • 修复 Swoole PgSql errorCode()

  • 修复软删除注解设置 field 无效

  • 修复 Swoole Http、WebSocket 服务器 close 事件参数类型

  • 修复 grpc 组件无法加载 Main 类

  • 修复 Swoole 下连接池释放引起的 Undefined array key

文档

Full Changelog: https://github.com/imiphp/imi/compare/v2.1.6...v2.1.7

imi - v2.0.29

Published by Yurunsoft over 2 years ago

优化

  • 优化 AMQPResource 安全关闭

  • 优化销毁协程上下文时捕获异常记录日志

  • 优化一些代码

修复

  • 修复 Call to undefined method Swoole\Coroutine\MySQL::checkCodeIsOffline()

  • 修复 jwt 组件 PHP 8.1 兼容

  • 修复 Swoole PgSql errorCode()

  • 修复软删除注解设置 field 无效

  • 修复 Swoole Http、WebSocket 服务器 close 事件参数类型

  • 修复 grpc 组件无法加载 Main 类

  • 修复 Swoole 下连接池释放引起的 Undefined array key

imi - v2.1.6

Published by Yurunsoft over 2 years ago

更新内容

增强

改进

修复

  • 修复一些问题 by @Yurunsoft in https://github.com/imiphp/imi/pull/303

  • 修复 Workerman 触发 onError 事件没有默认记录日志

  • 修复在 Docker 环境下 IMI.APP.INIT 事件大概率不触发的问题

imi - v2.0.28

Published by Yurunsoft over 2 years ago

修复

  • 修复一些问题 (#303)

  • 修复极低概率下,未初始化完 Worker 就处理请求

  • 修复在 Docker 环境下 IMI.APP.INIT 事件大概率不触发的问题

  • 修复 Workerman 触发 onError 事件没有默认记录日志

imi - v2.1.5

Published by Yurunsoft over 2 years ago

更新内容

增强

  • 实现 WebSocket、Tcp、Udp 异常处理器 (#294)

改进

  • Phar 相关改进和废除不合理的常量 (#293)

修复

  • 修复连接池释放连接,可能导致下一次获取到正在使用的连接 (#295)

  • 修复连接池资源被关闭后,释放连接时会重新加入连接池的问题 (#291)

开发动态

imi 正在研究接入 swow 中,相信不久的将来,imi 支持的容器将再加一个!

技术支持

为更好更全面地挖掘和照顾更多用户的PHP开发需求,也为让更多用户了解 imi,提升 imi 乃至 Swoole 生态的活力,使更多还在 Swoole 生态圈外的 phper 迈进圈中共同发展,imi 已将技术交流圈扩展到微信平台,建立了 imi 技术交流微信群,欢迎各位 phper 加入,imi 与你一同携手共建 Swoole 生态,共创 PHP 的美好未来!

微信群二维码:

QQ截图20220311162154

wechat

imi - v2.0.27

Published by Yurunsoft over 2 years ago

修复

  • 修复连接池释放连接,可能导致下一次获取到正在使用的连接 (#295)

  • 修复连接池资源被关闭后,释放连接时会重新加入连接池的问题 (#291)

imi - v2.1.4

Published by Yurunsoft over 2 years ago

本周更新,重磅支持将 imi 项目打包为 phar 文件,感谢 @NHZEX 做出的贡献!文档:https://doc.imiphp.com/v2.1/components/phar/index.html

为更好更全面地挖掘和照顾更多用户的PHP开发需求,也为让更多用户了解 imi,提升 imi 乃至 Swoole 生态的活力,使更多还在 Swoole 生态圈外的 phper 迈进圈中共同发展,imi 已将技术交流圈扩展到微信平台,建立了 imi 技术交流微信群,欢迎各位 phper 加入,imi 与你一同携手共建 Swoole 生态,共创 PHP 的美好未来!

微信群二维码:

QQ截图20220304182712

wechat

增强

  • Phar 支持 (#288)

  • Grpc 功能改进和修复 (#289)

  • 支持定义命令行名称分割符 (#290)

  • 支持监听 Swoole WebSocket Server disconnect 事件

优化

  • Phar 模式强制禁用热更新

  • 优化 Workerman Worker 类中的默认静态属性值

  • 优化代码

修复

  • 修复 Http 路由忽略大小写 (#287)
imi - v2.0.26

Published by Yurunsoft over 2 years ago

增强

  • Grpc 功能改进和修复 (#289)

优化

  • 优化代码

修复

  • 修复 Http 路由忽略大小写 (#287)
imi - v2.1.3

Published by Yurunsoft over 2 years ago

优化

  • 移除 Swoole 短名称检查检查,不启用也可以使用 imi (#281)

  • 增强 Content-Type 识别能力

修复

  • 修复 Workerman Gateway worker 中,WebSocket 连接事件处理抛出异常不会断开连接的问题 (#286)

  • 修复 Async 中 SwooleResult->get() 不会层层获取最终结果 (#283)

  • 修复存在多个空 WhereBrackets 时构建错误 (#284)

  • 修复 Call to undefined method XXX::checkCodeIsOffline()

  • 修复模型 save() 处理自动填入创建时间 (#285)

imi - v2.0.25

Published by Yurunsoft over 2 years ago

优化

  • 移除 Swoole 短名称检查检查,不启用也可以使用 imi (#281)

  • 增强 Content-Type 识别能力

修复

  • 修复 Workerman Gateway worker 中,WebSocket 连接事件处理抛出异常不会断开连接的问题 (#286)

  • 修复 Async 中 SwooleResult->get() 不会层层获取最终结果 (#283)

  • 修复存在多个空 WhereBrackets 时构建错误 (#284)

  • 修复 Call to undefined method XXX::checkCodeIsOffline()

imi - v2.1.2

Published by Yurunsoft over 2 years ago

What's Changed

Full Changelog: https://github.com/imiphp/imi/compare/v2.1.1...v2.1.2

imi - v2.0.24

Published by Yurunsoft over 2 years ago

What's Changed

Full Changelog: https://github.com/imiphp/imi/compare/v2.0.23...v2.0.24

imi - v2.1.1

Published by Yurunsoft over 2 years ago

过年前我们发布了 imi v2.1.0,这段时间里持续迭代更新,继续为大家提供强大可靠的框架功能。

专门为大家提供了 v2.0-v2.1 升级指南:https://doc.imiphp.com/v2.1/base/version/2.0-2.1.html

升级指南会随着版本迭代而更新,方便大家升级以及了解新特性!

增强

  • 增强 vendor 目录获取 (#254)

  • 新增 \Imi\JWT\Facade\JWT::validate() 方法

  • 支持定时任务的最小、最大延迟执行秒数 (#256)

  • Swoole WebSocket Server 支持 syncConnect (#257)

  • 模型注解 JsonEncode 增强,增加 JsonDecode 注解 (#262)

  • 支持为数据库连接设置表前缀 (#263)

  • 新增 Model::exists() 用于判断记录是否存在 (#264)

  • 新增环境变量 IMI_MACRO_LOCK_FILE_DIR 以支持在共享目录等不支持文件锁的文件系统中运行 (#265)

  • 支持 IMI_MACRO_OUTPUT_DIR (#269)

  • 支持设置字段为 createTime,插入记录时自动设置时间 (#270)

优化

  • 移除没有用到的 ErrorLog->backtraceLimit

  • 重构优化一些代码 (#266)

修复

  • 修复开发时组件更新版本问题

  • 修复宏定义若干问题 (#253)

  • 修复 coredump

  • 修复队列事件触发 (#260)

  • 修复 whereBrackets() 返回一个 Where 对象时值绑定无效 (#261)

  • 修复 jwt 组件抛出的异常

  • 修复 MySQL 8.0 生成模型的兼容问题 (#267)

  • 修复 Swoole 5.0

  • 修复官网在Safari浏览器下的bug (#271)

imi - v2.0.23

Published by Yurunsoft over 2 years ago

增强

  • 新增 \Imi\JWT\Facade\JWT::validate() 方法

优化

  • 移除没有用到的 ErrorLog->backtraceLimit

修复

  • 修复开发时组件更新版本问题

  • 修复队列事件触发 (#260)

  • 修复 whereBrackets() 返回一个 Where 对象时值绑定无效 (#261)

  • 修复 jwt 组件抛出的异常

  • 修复 MySQL 8.0 生成模型的兼容问题 (#267)

Package Rankings
Top 1.63% on Packagist.org
Badges
Extracted from project README
Latest Version Php Version Swoole Version imi Doc imi License star codecov 点击加群 贡献者