基于 Swoole 开发的协程 PHP 开发框架,常驻内存、协程异步,致力于丰富框架文档,上手容易,让开发者跟使用传统 MVC 框架一样顺手

v1.0.11 2019-09-12 02:57 UTC

README

imi

Latest Version Travis Php Version Swoole Version imi Doc Backers on Open Collective Sponsors on Open Collective imi License

介绍

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

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

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

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

功能组件

  • Server (Http/Websocket/Tcp/Udp)
  • 容器 (PSR-11)
  • Aop 注入
  • Http 中间件 (PSR-15)
  • MySQL 连接池 (协程&同步,主从,负载均衡)
  • Redis 连接池 (协程&同步,负载均衡)
  • Db 连贯操作
  • 关系型数据库 模型
  • 跨进程共享内存表 模型
  • Redis 模型
  • 日志 (PSR-3 / File + Console)
  • 缓存 (PSR-16 / File + Redis)
  • 验证器 (Valitation)
  • Task 异步任务
  • 进程/进程池
  • 命令行开发辅助工具
  • 业务代码热更新

开始使用

创建 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

完全开发手册

QQ群:17916227 点击加群,如有问题,负责的宇润全程手把手解决。

关于测试脚本

环境要求

Redis、MySQL

首次运行测试

  • 创建 db_imi_test 数据库,将 tests/db/db.sql 导入到数据库

  • 配置系统环境变量,如果默认值跟你的一样就无需配置了

名称 描述 默认值
MYSQL_SERVER_HOST MySQL 主机名 127.0.0.1
MYSQL_SERVER_PORT MySQL 端口 3306
MYSQL_SERVER_USERNAME MySQL 用户名 root
MYSQL_SERVER_PASSWORD MySQL 密码 root
REDIS_SERVER_HOST Redis 主机名 127.0.0.1
REDIS_SERVER_PORT Redis 端口 6379
REDIS_SERVER_PASSWORD Redis 密码
REDIS_CACHE_DB Redis 缓存用的 db,该 db 会被清空数据,请慎重设置 1

配置命令:export NAME=VALUE

  • 首次运行测试脚本:composer install-test

  • 首次之后再运行测试的命令:composer test

运行环境

  • Linux 系统 (Swoole 不支持在 Windows 上运行)
  • PHP >= 7.1
  • Composer
  • Swoole >= 4.3.0
  • Redis、PDO 扩展

版权信息

imi 遵循 木兰宽松许可证(Mulan PSL v1) 开源协议发布,并提供免费使用。

鸣谢

感谢以下开源项目 (按字母顺序排列) 为 imi 提供强力支持!

Contributors

This project exists thanks to all the people who contribute. 68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f494d492f636f6e7472696275746f72732e7376673f77696474683d38393026627574746f6e3d66616c7365

你想出现在上图中吗?

你可以做的事(包括但不限于以下):

最新代码以 dev 分支为准,提交 PR 也请合并至 dev 分支!

提交 Pull Request 到本仓库,你就有机会成为 imi 的作者之一!

捐赠

pay.png

开源不求盈利,多少都是心意,生活不易,随缘随缘……