- 源码介绍
imi协程开发框架是基于 Swoole 的 PHP 协程开发框架,它支持 Http、Http2、WebSocket、TCP、UDP、MQTT 等主流协议的服务开发,特别适合互联网微服务、即时通讯聊天im、物联网等场景!。
核心组件:
HttpApi、WebSocket、TCP、UDP、MQTT 服务器
MySQL 连接池 (主从+负载均衡)
Redis 连接池 (主从+负载均衡)
超好用的 ORM (Db、Redis、Tree)
毫秒级热更新
AOP
Bean 容器
缓存 (Cache)
配置读写 (Config)
枚举 (Enum)
事件 (Event)
门面 (Facade)
验证器 (Validate)
锁 (Lock)
日志 (Log)
异步任务 (Task)
环境要求:
Redis、MySQL
imi协程开发框架 更新日志:
v2.0.11
增强
热更新支持重新加载配置文件
新增 Server::getConnections()、Server::getConnectionCount() (#203)
支持往模型中动态写入数据,但不支持 toArray() 和序列化
SQL 监听支持捕获异常
Workerman 环境启动支持输出 network 信息
with() 关联预加载特性
这个版本实现了模型关联查询 with 特性,可以减少查询次数提升关联查询性能
支持在关联注解中设置 with=true 开启自动预加载
支持在关联注解中设置 withFields={"指定序列化字段"}
支持在 Model::query() 后调用 with() 方法指定预加载的关联属性名
支持在 Model::query() 后调用 with() 方法指定预加载关联属性名对应的回调
支持在 Model::query() 后调用 withField() 指定查询出来的模型,序列化时的字段
Model::queryRelationsList() 支持预加载查询
优化
改进开发体验 (#197)
优化 Swoole 下文件扫描性能
兼容关闭 Swoole 短名称的场景
优化 AppContexts::APP_PATH 处理为绝对路径
优化 json 错误抛出异常的容错
单元测试改进 (#202)
重构 HTTP 路由提升性能 (#200)
优化 ArrayList 类型不对应时的提示
生成模型时,将 json 类型字段的 getter 方法设为引用返回,便于修改数据
优化一些代码
修复
修复 @app.overrideDefaultIgnoreNamespace、@app.overrideDefaultIgnorePaths 配置不生效问题
修复 Request 执行 setUri() 时会触发 initUri()
修复权限组件转为树形的问题 (#201)
修复 SessionId 为空字符串时当作正常 Session 的问题
修复空 Session Json 解析失败
修复 Swoole RedisServerUtil
修复 Workerman UDP 无法从请求上下文获取packetData
修复 ManyToMany、PolymorphicToMany、PolymorphicManyToMany 注解指定 fields 参数无效