imi 介绍

imi 是基于 PHP 协程应用开发框架,它支持 HttpApi、WebSocket、TCP、UDP 应用开发。git
由 Swoole 提供强力驱动,Swoole 拥有常驻内存、协程非阻塞 IO 等特性。github
框架遵照 PSR 标准规范,提供 AOP、注解、链接池、请求上下文管理、ORM模型等经常使用组件。segmentfault
imi 的模型支持关联关系的定义,增删改查一把梭!缓存
与其余专一微服务领域的 Swoole 框架不一样,imi 专一单体应用开发。缘由很简单:大部分公司都不须要上微服务,单体应用足矣。框架
imi 框架第一个版本 v0.0.1 首发于 2018年6月21日
更新内容
新增
- 增长单元测试(PHP7.1-7.四、nightly 所有经过),今后再也不担忧修复一个 bug,产生更多 bug。这是一个长期任务,不断充实测试用例,也欢迎你们来贡献测试代码!
- 新增 ImiUtilCoroutine::create(),与 imigo() 行为一致
- 新增 ImiUtilHttpMessageUtil 类
- 新增框架优先级定义,常量类:ImiUtilImiPriority
修复
- 修复热重启问题:worker exit timeout, forced to terminate
- 修复 PDO Statement 没法命中缓存问题
- 修复日志重复写入问题
- 修复 MySQL->query() 方法不记录最后执行 SQL 语句问题
- 修复当设置task_enable_coroutine但不设置enable_coroutine时,task事件监听参数错误问题
- 修复类型声明
- 修复 RedisManager::getNewInstance() 没法被 RedisManager::release() 释放问题
- 修正 Redis 相关类型注释
- 修复 withAddedHeader() 问题
- 修复使用 TAutoInject 时,有父类致使没法正常注入的问题
- 修复Callback、CallableValue注解没法注入属性问题
- 修复配置值注入、常量注入注解,没法注入到属性问题
优化
- 优化 BeanProxy::getConfigInjects()
- 优化 ImiDbQueryResult
- 非 worker 进程投递的 task,再也不自动 finish
- 同步池子 getResource() 再也不有可能返回 null,一概抛出异常
- ITaskHandler->handle() 支持返回值自动 finish
- 规范内部监听 IMI.INITED 事件的优先级
- 优化 BeanProxy,如今不用等到回收周期,当即会被释放
- 注入属性值的注解类改成 ImiAopAnnotationBaseInjectValue
- 进程、进程池进程,强制开启协程化
测试用例计划及进度
- [x] Aop
- [x] Config
- [ ] Cache
- [x] Db
- [x] Enum
- [x] Event
- [x] Inject
- [x] Redis
- [x] HttpServer
- [x] HttpValidate
- [ ] WebSocketServer
- [ ] TCPServer
- [ ] UDPServer
- [x] Task
- [ ] Lock
- [ ] Log
- [ ] Model
- [ ] Process
- [ ] Utils

联系咱们
Github 反馈:https://github.com/Yurunsoft/...微服务
码云仓库:https://gitee.com/yurunsoft/IMI单元测试
Segmentfault 提问:https://segmentfault.com/测试
开源中国 问答:https://www.oschina.net/question优化
QQ群交流:17916227
spa