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 visible (Hide)

imi - v2.1.32

Published by Yurunsoft almost 2 years ago

增强

  • Listener 注解支持设置事件仅触发一次 (#458)

优化

  • 优化 WorkerStart 监听
  • 定时器自动捕获异常并记录日志
  • 优化一些代码

代码质量

  • 更新 php-cs-fixer 版本和规则 (#457)

修复

  • 修复模型序列化后,丢失不允许序列化的字段值
  • 修复 PHP 7.4 代码静态分析
imi - v2.1.31

Published by Yurunsoft almost 2 years ago

使用 Swoole Compiler 加密 imi 的说明:https://doc.imiphp.com/v2.1/production/swoole-compiler.html

欢迎体验 imi 微服务生态:https://doc.imiphp.com/v2.1/components/config/center.html

增强

  • 兼容 PHP 8.2 (#441)

  • 支持 PHP 8.2 交叉类型

  • 支持只读类

优化

  • 优化 fpm 的路由初始化触发逻辑

  • 为密码参数添加 \SensitiveParameter 注解,标记为敏感参数

  • 移除无用属性

修复

  • 修复 DelayServerBeanCallable 类序列化

  • 修复 --app-runtime 启动参数

imi - v2.0.50

Published by Yurunsoft almost 2 years ago

  • 修复 DelayServerBeanCallable 类序列化

  • 修复 --app-runtime 启动参数

imi - v2.1.30

Published by Yurunsoft almost 2 years ago

增强

优化

  • 对更多 int、float、bool 类型配置参数值进行类型转换

  • 优化:默认上下文管理器,在脚本执行结束时自动销毁上下文

修复

  • 修复模型和数据库查询结果对象的 getArray() 方法,传 $className 时的兼容性 (#447)

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

  • 修复请求上下文销毁(php-fpm、roadrunner)及事件触发(非 Swoole) (#452)

  • 修复 RoadRunner 每次请求完毕没有释放请求上下文

  • 修复测试

imi - v2.0.49

Published by Yurunsoft almost 2 years ago

  • 修复测试

  • 修复请求上下文销毁(php-fpm、roadrunner)及事件触发(非 Swoole) (#452)

  • 修复 RoadRunner 每次请求完毕没有释放请求上下文

  • 优化:默认上下文管理器,在脚本执行结束时自动销毁上下文

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

imi - v2.1.29

Published by Yurunsoft about 2 years ago

增强

  • 服务发现(负载均衡):https://doc.imiphp.com/v2.1/components/serviceDiscovery/index.html

  • 调用链路追踪 OpenTracing(Zipkin、Jaeger):https://doc.imiphp.com/v2.1/components/tracing/opentracing.html

  • 重构骨架项目:增加模块划分、自动格式化、代码静态分析、自动化测试,更加符合实际项目的开发

  • Imi\Grpc\Util\ProtobufUtil::setMessageData() 增加参数 $ignoreUnknown,可以忽略未知字段

  • 新增 Imi\Grpc\Util\ProtobufUtil::newMessage() 和 Imi\Grpc\Util\ProtobufUtil::newMessageArray()

  • 增强 BeanFactory::getObjectClass() 支持字符串

  • 增强 Column 注解的 createTime、updateTime 支持传入 int 值,表示时间精度,仅 bigint、int8 有效 (#445)

优化

  • 优化连接池轮询负载均衡增加初始的随机

  • 优化 Redis 重置连接时,判断切换了库后才执行 select() (性能提升🚀)

  • 优化 Imi\Log\Log::get() 设置 $channelName 参数默认值为 null

  • 移除消息队列消息类中的 retryCount、maxRetryCount (#444)

  • 优化了一些代码

修复

  • 修正类型注释

  • 修复在非服务器上下文中,使用服务器容器实例化对象,无法注入属性

  • 修复长连接 DataParser 在特定场景下获取错误

  • 文档修复

  • 修复 Workerman 长连接连接时没有创建连接上下文

imi - v2.0.48

Published by Yurunsoft about 2 years ago

  • 修复 Workerman 长连接连接时没有创建连接上下文

  • 更新文档

  • 优化 Redis 重置连接时,判断切换了库后才执行 select()

  • 修复长连接 DataParser 在特定场景下获取错误

  • 修复在非服务器上下文中,使用服务器容器实例化对象,无法注入属性

  • 修正类型注释

  • 修复 Condition 注解的 callable 无法使用 ['$this', 'methodName'] 格式的值 (#436)

  • 修复测试

imi - v2.1.28

Published by Yurunsoft about 2 years ago

增强

优化

  • 删除多余代码

  • 更新 workerman http 协议处理类

修复

  • 修复 Condition 注解的 callable 无法使用 ['$this', 'methodName'] 格式的值 (#436)

  • 修复 NFS bad interpreter: Text file busy

  • 修复特定场景启动 workerman 会无限刷报错信息

  • 修复视图生成模型后的 DDL SQL 为空

imi - v2.0.47

Published by Yurunsoft about 2 years ago

  • 修复 Condition 注解的 callable 无法使用 ['$this', 'methodName'] 格式的值 (#436)

  • 删除多余代码

  • 修复 NFS bad interpreter: Text file busy

  • 修复视图生成模型后的 DDL SQL 为空

imi - v2.1.27

Published by Yurunsoft about 2 years ago

增强

  • 实现模型发号器,支持 UUID、雪花算法 (#430) (文档)

  • 新增 RequestParam 注解 (#432) (文档)

文档

修复

  • 修复未声明 Entity 注解的模型类报错 (#427)

  • 去除调试代码

  • 修复执行定时任务时抛出 PDOException 无法正确捕获并二次抛出异常 (#431)

imi - v2.0.46

Published by Yurunsoft about 2 years ago

  • 修复执行定时任务时抛出 PDOException 无法正确捕获并二次抛出异常 (#431)

  • Update index.md (#428)

imi - v2.1.26

Published by Yurunsoft about 2 years ago

  • 优化代码

  • 修复 Swoole RedisServerUtil 在集群模式时报错 (#425)

  • 修复 kill Swoole 进程池时不会 wait 子进程

  • 修复 AMQP 消费者心跳

imi - v2.0.45

Published by Yurunsoft about 2 years ago

  • 修复 Symfony 5.4.12 出现 Ctrl+C 无法停止服务

  • 修复 jwt 测试用例中不规范的密钥长度 (#413)

  • 优化代码

  • 修复 Swoole RedisServerUtil 在集群模式时报错 (#425)

imi - v2.1.25

Published by Yurunsoft about 2 years ago

优化

  • Imi\Log\ErrorLog::onException() 替换为 \Imi\Log\Log::error() (#419)

文档

  • 更新文档 (#421)

修复

  • 修复 Symfony 5.4.12 出现 Ctrl+C 无法停止服务
imi - v2.1.24

Published by Yurunsoft about 2 years ago

增强

  • 新增请求上下文缓存驱动 (#415)

  • 支持 WebSocket 二进制协议 (#416)

文档

  • 修改文档jwt生成私钥命令长度 (#414)

  • docs: 更新参数注释,方便ide (#418)

修复

  • 修复 jwt 测试用例中不规范的密钥长度 (#413)
imi - v2.1.23

Published by Yurunsoft about 2 years ago

增强

  • 支持模型序列化 (#412)

优化

  • 优化 Swoole Process 平滑停止

  • 修正注释兼容性

imi - v2.1.22

Published by Yurunsoft about 2 years ago

增强

  • 新增 gRPC 的 HTTP 代理网关 (#402)

  • 新增命令行工具的 --bootstrap 参数

  • 支持在 Swoole BASE 模式下获取所有 Worker 连接数 (#411)

  • 支持模型增量更新 (#410)

优化

  • 优化连接池获取连接后的资源断开检测

  • 优化了一些代码

修复

  • 修复 Serializable 注解在关闭驼峰命名时不生效 (#405)

  • 修复 Facade 生成器和请求上下文代理类生成器 (#407)

  • 修复表注释开头是 @ 字符时,生成模型后报错 (#408)

文档

代码质量

  • 增加 Swoole 5.0 测试 (#400)

  • 更新代码检测 (#404)

  • 修复 amqp 偶发测试无法正常停止

  • 更新一些文档

  • 新增文档:单端口支持 WebSocket+Http

imi - v2.0.44

Published by Yurunsoft about 2 years ago

修复

  • 修复 Serializable 注解在关闭驼峰命名时不生效 (#405)

  • 修复 Facade 生成器和请求上下文代理类生成器 (#407)

  • 修复表注释开头是 @ 字符时,生成模型后报错 (#408)

imi - v2.1.21

Published by Yurunsoft about 2 years ago

优化

  • 优化一些代码

  • 优化声明类型的属性默认值

  • 删除无用文件

修复

  • 修复注释

  • 修复模型非驼峰命名的兼容问题

  • 修复 kill php-fpm 的 fpm/start 命令有进程残留的问题 (#397)

  • 修复 Swoole 进程池的子进程崩溃无法重新拉起 (#395)

文档

  • 修复gprc客户端文档调用错误问题 (#392) by @mrlovables

  • fix:修复httpApi调用rpc服务时启动项目重名报错问题 (#394) by @Hammer-7

  • Update grpc.md (#393) by @Hammer-7

imi - v2.0.43

Published by Yurunsoft about 2 years ago

优化

  • 删除无用文件

修复

  • 修复注释

  • 修复 kill php-fpm 的 fpm/start 命令有进程残留的问题 (#397)

文档

  • 修复gprc客户端文档调用错误问题 (#392)

  • fix:修复httpApi调用rpc服务时启动项目重名报错问题 (#394)

  • Update grpc.md (#393)

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 点击加群 贡献者