imi协程开发框架是基于 Swoole 的 PHP 协程开发框架,它支持 Http、Http2、WebSocket、TCP、UDP、MQTT 等主流协议的服务开发,特别适合互联网微服务、即时通讯聊天im、物联网D ( $ o % | B等场景!。
核心组件:
HttpApi、WebSocket、m b ?TCP、UDP、MQTT 服务器
MySQL 连接池 (主从 k % c+负载均衡)+ 1 # B
Redis 连接池 (主从+负载均衡)
超好用的 ORM (Db、RedX r [ = t cis、Tree)
毫秒级热更新
AOP
Bean 容器
缓存 (Cache)
配置读写 (Config)
枚举 (Enum)
事件 (Event)
门面 (Facade)
验( * ^ d u A B证器 (Validate)
锁 (Lock)
日志 (Log)
异步任务 (Task)
环境要求:
Redis、MySQL
imi协程开= F % ? P n发框架 更新日志:
v2.L v q _ H0.11
增强
热更新支持重新加载配置文件
新增 Server::getConnections()、Server::getConnectionCount() (#203)
支持往模型中动态写入数据,但不支持 toArray(N m + R , s _ / $) 和序列化* h I D z
SQL 监听支持捕获异常
Workerman 环境启动支持输出 network 信息
wV q % ~ ] :ith() 关联预加载特性
这个版本实现了模型关联查询 with 特性,可以减少查询次数提升关联查询性能
支持在关联注解中设置 withm 8 R D j=true 开启自动预加载: | o
支持在关联注解中设置 withFields={“指定序列化字段”}
支持在 Model::query() 后调用 with() 方= c Z r O法指定预加载的关联属性名
支持在 MT u | e R – uodels A . # A ^::quer, I ( Jy() 后调用 with() 方法指定预加载关联属性名对应的回调
支持在 Model::V / x & S : `query() 后调用# j I B r @ withField() 指定查询出来的模型,序列化时的字段
Mods c q R ^ ` J C Del::queryRelationsList() 支持预加载查询
优化
改进开发体验 (#197)
优化 Swoole 下文件扫描性能
兼Y b x Z容关闭 Swoole 短名称的场景
优化 AppContexts::APP_PATH 处理为绝对路径
优化 json 错误抛出异常的容错
单元测试改进 (#202)
重构 HTTP 路由提升性能 (#200)
优化 ArrayList@ v E O g 4 类型不对应时的提示T n i V l
生成模型时,将 json 类型字段的 getter 方法设为引用返回,便于修改数据
优化一些代码
修复
修复 @app.overrideDefaultIgnoreNamespace、@app.overrideDefaultIgnorePaths 配置不生效问题
修复 Rew ` = { #quest 执行 setUri() 时会触发 initUri()
修复权限组件转为树形的问题 (#201)[ ! f K x I S
修复 SessionId 为空字符串时当作正常 Session 的s _ % } 1 { ] +问题
修复空 Session Json 解析失败
修复 Swoole RedisServerUU a k ^ X J @til
修复 Workerman UDP 无法从请求上下文获取pack2 = ^ L S C j 6 7etData
修复 ManyToMany、PolymorphicToMany、PolymorphicManyToManO Q 6 l | Ly 注解指定 fields 参数无效