imi 是基于 PHP 协程应用开发框架,它支持 HttpApi、WebSocket、TCP、UDP 应用开发。
由 Swoole 提供强力驱动,Swoole 拥有常驻内存、协程非阻塞 IO 等特性。
框架遵守 PSR 标准规范,提供 AOP、注解、连接池、请求上下文管理、ORM模型等常用组件。
imi 的模型支持关联关系的定义,增删改查一把梭!
毫秒级的注解及代码热更新,让你在开发时只管一把梭,体验与 fpm 下开发并无二致,保存就刷新,立马看到效果。
与其他专注微服务领域的 Swoole 框架不同,imi 专注单体应用开发。原因很简单:大部分公司都不需要上微服务,单体应用足矣。
imi 框架第一个版本 v0.0.1 首发于 2018 年 6 月 21 日
测试用例持续完善中,目前有 177 个测试,733 个断言。
更新日志
imi 成为首个使用木兰宽松许可证的 Swoole 框架,宇润此次修改开源协议的理由是:
首先,木兰宽松是中国第一个自己的开源协议。木兰宽松比 imi 之前使用的 Apache V2 更加自由,更加符合实际。最后,即便别人侵权,你想要通过法律途径维权成本很高,基本都是不了了之。所以选什么协议都一样了,支持国产!
增强
- 开源协议从 Apache V2 切换为 木兰宽松许可证(Mulan PSL v1) ,更加自由!
- 增加自定义 SessionId 获取方式的测试用例(感谢 @loyating)
- View 注解的 template 为空时默认使用当前方法名
- 新增 ImiUtilFile::isEmptyDir() 方法,判断目录是否为空
- 新增 InEnum 验证注解,用于验证值是否存在于枚举列表中
- Request 对象增加 request()、hasRequest() 方法,request 数据包含 get/post/cookie
- 新增验证类测试用例
- 新增自动验证注解测试用例
修复
- 修复 ConnectContextRedis 导致进程阻塞的问题
- 修复 WebSocket 热重启后无法握手问题
- 修复使用 vendor/bin/imi 无法启动项目问题
优化
- 将 IMI 文字描述大写全部改为小写 imi
- 增加 HttpServer 测试用例的请求日志记录
- WS 请求测试后将 YurunHttp Handler 切换为 Curl
- 重构 ViewHandler
- 增加测试脚本配置和运行说明,测试用例中的 MySQL、Redis 的配置,都可以通过系统环境变量配置
开始使用
创建 Http Server 项目:composer create-project imiphp/project-http
创建 WebSocket Server 项目:composer create-project imiphp/project-websocket
创建 TCP Server 项目:composer create-project imiphp/project-tcp
创建 UDP Server 项目:composer create-project imiphp/project-udp
联系我们
Github 反馈:https://github.com/Yurunsoft/...
码云仓库:https://gitee.com/yurunsoft/IMI
Segmentfault 提问:https://segmentfault.com/
开源中国 问答:https://www.oschina.net/question
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。