imi 是基于 PHP Swoole 的高性能协程应用开发框架,它支持 HttpApi、WebSocket、TCP、UDP 服务的开发。
在 Swoole 的加持下,相比 php-fpm 请求响应能力,I/O密集型场景处理能力,有着本质上的提升。
imi 框架拥有丰富的功能组件,可以广泛应用于互联网、移动通信、企业软件、云计算、网络游戏、物联网(IOT)、车联网、智能家居等领域。可以使企业 IT 研发团队的效率大大提升,更加专注于开发创新产品。
首创毫秒级的注解及代码热更新重启,让你在开发时只管一把梭,体验与 fpm 下开发并无二致,保存就刷新,立马看到效果。
与其他专注微服务领域的 Swoole 框架不同,imi 专注单体应用开发。原因很简单:大部分公司都不需要上微服务,单体应用足矣。
官方网站:https://www.imiphp.com/
imi 框架第一个版本 v0.0.1 首发于 2018 年 6 月 21 日
【宇润】基于 PHP + Swoole 的 imi 框架新手入门课程 | 每周五更新 | 从秃头到满头秀发,让你有更多时间上班划水,脱单不再是梦
戳我免费看从秃头到满头秀发的 imi 框架教程https://www.bilibili.com/video/av78158909(已更新到第九集《模型和ORM》)
每周四或五晚上,更新至少一集~
imi 的 Partial
思想是从 C# 中借鉴而来。Partial
可以将一个类的部分,分成几个文件,分别书写。
截止目前最新的 PHP 7.4 版本,还未在语言层面上支持 Partial
特性。
但依赖于 imi 强大的容器对象,终于在 PHP 中实现了 Partial
特性。
使用非常简单,使用 trait
编写,加上 @Partial
注解,可以方便地注入。
多人协作开发,修改同一个类文件难免有冲突。如果事先定义好接口,将不同方法分配给几个人开发,每个人只需要在自己的文件中编写,不用担心冲突问题。
类的方法特别多,并且无法很好地拆分。这时候分到几个文件中,会相对比较好维护一些。
有一些类是通过工具生成的,如果我们在类里编写了自己的代码,又需要重新工具生成一些内容,这时候会覆盖我们编写的代码。使用 Partial
在另一个文件开发,不会被覆盖掉。
在
Partial
概念引入 imi 框架前,imi 的模型生成工具将生成代码放在父类,用户在子类中编写代码。
新增 Partial 概念 (文档)
树形模型新增支持注解设定主键字段 (文档)
优化 Redis 连接池资源类
优化 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
完全开发手册:https://doc.imiphp.com/
imi 组件库:https://github.com/imiphp
imi 官方指定 Http 客户端(替代 Curl):https://github.com/yurunsoft/yurunhttp
欢迎各路新人和大佬的加入贡献代码的行列中,修正错别字、错误拼写、提交代码,我们全都欢迎~
Github 反馈:https://github.com/Yurunsoft/IMI/issues
码云仓库:https://gitee.com/yurunsoft/IMI
Segmentfault 提问:https://segmentfault.com/
开源中国 问答:https://www.oschina.net/question
QQ群交流:17916227