资讯专栏INFORMATION COLUMN

imi v1.0 正式版,专注单体应用的 PHP 协程应用开发框架

genefy / 3592人阅读

摘要:年开发并发布框架现已停止维护。经过一年实战,年月日,一周年之际正式发布版本。宇润部分开源项目我已通过码云平台,向项目力所能及地捐款,聊表心意。所以,目前主打的还是单体应用开发。协议的开发,也是带来的一大优势。

imi 介绍

imi 是基于 PHP 协程应用开发框架,它支持 HttpApi、WebSocket、TCP、UDP 应用开发。

由 Swoole 提供强力驱动,Swoole 拥有常驻内存、协程非阻塞 IO 等特性。

框架遵守 PSR 标准规范,提供 AOP、注解、连接池、请求上下文管理、ORM模型等常用组件。

imi 的模型支持关联关系的定义,增删改查一把梭!

作者介绍

宇润,江苏无锡人,94年出生。初中自己接触易语言,从此踏入代码的世界。

2013 年开发并发布 YurunPHP 框架(现已停止维护)。

2017 年开始正式玩 git 和发布开源项目,开源的东西都是自己能用到才会去做,不会为了造轮子而造,一切为了实用。

2018 年接触 Swoole,打开了新世界的大门,原来 PHP 还能这么玩!

2018年4月16日,我为 imi 写下了第一个字节的代码。

2018年6月21日,发布了第一个公开版本 v0.0.1。

经过一年实战,2019年6月21日,一周年之际正式发布 v1.0.0 版本。

宇润部分开源项目:imi、YurunHttp、YurunOAuthLogin、PaySDK、ChineseUtil

我已通过码云平台,向 Swoole 项目力所能及地捐款 1111,聊表心意。

核心组件

[x] Server (Http/Websocket/Tcp/Udp)

[x] 容器 (PSR-11)

[x] Aop 注入

[x] Http 中间件 (PSR-15)

[x] MySQL 连接池 (协程&同步,主从,负载均衡)

[x] Redis 连接池 (协程&同步,负载均衡)

[x] Db 连贯操作

[x] 关系型数据库 模型

[x] 跨进程共享内存表 模型

[x] Redis 模型

[x] 日志 (PSR-3 / File + Console)

[x] 缓存 (PSR-16 / File + Redis)

[x] 验证器 (Valitation)

[x] Task 异步任务

[x] 进程/进程池

[x] 命令行开发辅助工具

[x] 业务代码热更新

扩展组件

imi-rpc

imi-hprose

imi-access-control

imi-rate-limit

imi-shared-memory

开始使用

完全开发手册

新项目 Demo

基于 imi 的项目

SixMQ (宇润)

慢点博客 (慢点)

其它项目因工作原因不便透露,已知我所在公司、私单项目正在运行 imi。

起源 & 设计 & 未来 起源

上面提到,我 2018 年接触 Swoole,打开了新世界的大门,原来 PHP 还能这么玩!

我认为的最好的学习方法,那就是去用,没有实际的功能去实现,学了也会容易忘,不算真正学会。之前我也有 YurunPHP 框架的开发经验,于是决定造个框架吧。

设计

开发 imi 之前,研究了好几个当时比较出名的框架,看到 Swoft 后,最终决定在 imi 框架大量使用注解。至于注解的优缺点,相比百度能比我说得更好,这里就不再复制粘贴一遍了。

目前大部分 Swoole 框架大都在强调微服务,但 imi 的设计理念确是:

微服务可以有,但不是必须

我认为绝大部分开发者的公司,用不着,或者根本没有必要上微服务。微服务的开发、维护成本会比较大,没有一定规模和业务量的,如果强行上微服务会本末倒置,给自己找麻烦。

imi 目前实现了最基础的 imi-rpc 组件,以及支持了 hprose 协议。虽然还没有更多深入的实现,但这都说明了 imi 的设计理念,可以有,就看做不做。

所以,imi 目前主打的还是单体应用开发。项目跑在 Swoole 下,可以比在 fpm 下性能更好,承载访问量更大,尤其是在大量调用第三方接口的 I/O 密集型场景。

WebSocket、TCP、UDP 协议的开发,也是 Swoole 带来的一大优势。

当然,Swoole 用来开发中间件也是相当不错的,不能只把眼光放在 curd 上。

未来

imi 未来也会逐步向微服务方面探索和发展,只不过现在更想做好眼前的单体应用开发。

联系我们

Github 反馈:https://github.com/Yurunsoft/...

码云仓库:https://gitee.com/yurunsoft/IMI

Segmentfault 提问:https://segmentfault.com/

开源中国 问答:https://www.oschina.net/question

QQ群交流:17916227

欢迎真正喜欢代码,而不是仅仅当作是工作的朋友,加入 imi 开发组!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/31758.html

相关文章

  • IMI 基于 Swoole 开发协程 PHP 开发框架 常驻内存、协程异步非阻塞

    摘要:介绍是基于开发的协程开发框架,拥有常驻内存协程异步非阻塞等优点。宇润我在年开发并发布了第一个框架,一直维护使用至今,非常稳定,并且有文档。于是我走上了开发的不归路 showImg(https://segmentfault.com/img/bVbcxQH?w=340&h=160); 介绍 IMI 是基于 Swoole 开发的协程 PHP 开发框架,拥有常驻内存、协程异步非阻塞IO等优点。...

    airborne007 评论0 收藏0
  • QueryPHP V1-beta.3 完成 1.0.0 计划功能冻结

    摘要:版本完成正式版前的除之外计划功能,启动冻结。百分之百单元测试覆盖直面一剑封喉,基于实现框架常驻,依托生态实现业务常驻,此刻未来逐步渐进。 QueryPHP v1.0.0-beta. 版本完成 1.0 正式版前的除 Swoole 之外计划功能,启动冻结。下一版本专注 Swoole 协程改进。 关于 QueryPHP QueryPHP 是一款现代化的渐进式高性能 PHP 7 不仅仅是常驻框...

    ghnor 评论0 收藏0
  • 更新内容 hyperf-skeleton v1.0.3 Added 安装器为 RPC 部分增加 JSON RPC with Service Governance 选项, 选择该选项会自动安装 hyperfservice-governance 服务治理组件; 骨架内提供的 AppExceptionHandlerAppExcpetionHandler 默认输出异常信息 Changed 将 AppM...

    alaege 评论0 收藏0
  • v1.0.2 更新内容 本次更新涉及以下组件 hyperf/databasehyperf/dihyperf/eventhyperf/http-serverhyperf/loggerhyperf/redishyperf/contract Added 接入 Travis CI,目前 Hyperf 共存在 426 个单测,1124 个断言; #25 完善了对 Redis::connect 方法的...

    EsgynChina 评论0 收藏0
  • PHP基础

    摘要:分别为适配器模式,装饰器模式,代理模式,外观模式,桥接模式,组合模式,享元模式。设计模式五适配器模式适配器模式将某个对象的接生成器和协程的实现在这篇文章中,作者针对那些比较难以理解的概念,以一个更为通俗的方式去讲明白。。 PHP 源码注解 PHP 的详细源码注解 PHP 字符串操作整理 一些有关字符串的常用操作。 Redis 常见七种使用场景 (PHP 实战) 这篇文章主要介绍利用 R...

    HtmlCssJs 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<