① 简介:
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环境。

④ 更新日志v2.0.16:
增强了热更新支持,可重新加载配置文件;新增了Server::getConnections()、Server::getConnectionCount()等功能;支持往模型中动态写入数据;SQL监听支持捕获异常;Workerman环境启动支持输出network信息。此外,还优化了开发体验,改进了Swoole下文件扫描性能,兼容关闭Swoole短名称的场景,优化了AppContexts::APP_PATH处理为绝对路径等。

⑤ with()关联预加载特性:
这个版本实现了模型关联查询的with特性,可减少查询次数提升关联查询性能。支持在关联注解中设置with=true开启自动预加载,设置withFields={“指定序列化字段”},以及在Model::query()后调用with()方法指定预加载的关联属性名和回调。还支持在Model::query()后调用withField()指定查询出来的模型序列化时的字段。

⑥ 修复与改进:
修复了@app.overrideDefaultIgnoreNamespace、@app.overrideDefaultIgnorePaths配置不生效问题;请求执行setUri()时触发initUri()的问题;权限组件转为树形的问题;SessionId为空字符串时当作正常Session的问题;空SessionJson解析失败的问题;Swoole RedisServerUtil的问题;Workerman UDP无法从请求上下文获取packetData的问题;ManyToMany、PolymorphicToMany、PolymorphicManyToMany注解指定fields参数无效的问题等。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。