imi 是基于 PHP Swoole 的高性能协程应用开发框架,它支持 HttpApi、WebSocket、TCP、UDP 服务的开发。
在 Swoole 的加持下,相比 php-fpm 请求响应能力,I/O密集型场景处理能力,有着本质上的提升。
imi 框架拥有丰富的功能组件,可以广泛应用于互联网、移动通信、企业软件、云计算、网络游戏、物联网(IOT)、车联网、智能家居等领域。可以使企业 IT 研发团队的效率大大提升,更加专注于开发创新产品。
毫秒级的注解及代码热更新,让你在开发时只管一把梭,体验与 fpm 下开发并无二致,保存就刷新,立马看到效果。
与其他专注微服务领域的 Swoole 框架不同,imi 专注单体应用开发。原因很简单:大部分公司都不需要上微服务,单体应用足矣。
imi 框架第一个版本 v0.0.1 首发于 2018 年 6 月 21 日
又周五了,最近学习 imi 的用户越来越多,imi 也在变得越来越好。预祝大家周末快乐~
更新日志
新增
-
新增支持查询器别名,减少查询器连贯操作重复构建步骤
-
新增超全局变量 Hook,将
@app.beans.SuperGlobals.enable
配置为true
,即可在代码中直接使用:$_GET、$_POST、$_COOKIE、$_REQUEST、$_SESSION、$_SERVER、$_FILES
-
新增模型
Meta
类,用于在模型类中方便获取模型相关信息 -
Http/TCP/UDP/WS 控制器支持设定是否为单例模式
-
新增
Model::dbQuery()
方法,查询结果为数组而不是当前类实例对象 -
新增
@ServerInject
注解
优化
-
优化模型代码
-
去除无用代码
-
废除旧的 gzip 响应方法,优化代码
-
移除 Log traceMinimum
修复
-
修复分页查询,页码不为 1 时,总记录数和总页数显示为 0 的问题
-
修复模型
parseSaveData
事件中,修改 data 值会改变模型属性值问题
开始使用
创建 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
完全开发手册:https://doc.imiphp.com/
imi 组件库:https://github.com/imiphp
imi 官方指定 Http 客户端(替代 Curl):https://github.com/yurunsoft/yurunhttp
欢迎各路新人和大佬的加入贡献代码的行列中,修正错别字、错误拼写、提交代码,我们全都欢迎~