imi 是基于 PHP 协程应用开发框架,它支持 HttpApi、WebSocket、TCP、UDP 应用开发。
由 Swoole 提供强力驱动,Swoole 拥有常驻内存、协程非阻塞 IO 等特性。
框架遵守 PSR 标准规范,提供 AOP、注解、连接池、请求上下文管理、ORM模型等常用组件。
imi 的模型支持关联关系的定义,增删改查一键解决!
毫秒级的注解及代码热更新,让你在开发时只管一键解决,体验与 fpm 下开发并无二致,保存就刷新,立马看到效果。
与其他专注微服务领域的 Swoole 框架不同,imi 专注单体应用开发。原因很简单:大部分公司都不需要上微服务,单体应用足矣。
imi 框架第一个版本 v0.0.1 首发于 2018 年 6 月 21 日
测试用例持续完善中,目前有 122 个测试,437 个断言。
新增 Lock 快捷类
新增 Atomic 进程锁
新增 Lock 测试用例
新增 Lock Annotation 测试用例
Lock 接口强类型定义
支持配置定义 Lock,根据 lockId 操作
修复 tryLock() 执行回调时,不返回 boolean 问题
MemoryTable 支持使用类来定义结构
支持在配置中设定 MemoryTable
新增 MemoryTable 测试用例
修复 MemoryTableManager 问题
重构,现在ConnectContext不再本地存储数据,不再怕多个worker进程同时去读写
新增 ConnectContext 锁支持,现在读写数据不会冲突,必须设置锁,升级请注意!
新增内存表 ConnectContext Handler 支持
新增 RedisHash Handler defaultHashKey
新增缓存测试用例
新增缓存注解测试用例
修复 Cache Redis/RedisHash Handler 返回值问题
修复 Cache File delete() 不删除 .ex 文件问题
修复 Cache File clear() 无返回值问题
修复 Cache File getMultiple() 方法返回键为数字问题
新增 WebSocket open 事件
WebSocket 的连接上下文创建移动到中间件执行之前,在中间件中就可以操作连接上下文
使用 defer 实现自动释放 RequestContext
新增支持 redis 的 options 配置项(支持:\Redis::OPT_XXX)
支持设定 ServerGroup 的 status,是否启用分组
调整:当PoolResource->checkState()为false时,先close()再open()
initWorker() 中清除池和缓存对象
让测试用例在协程下运行
修复 GroupRedis、ConnectContextRedis 不等待执行完毕的就 App Inited 的问题
Db Statement 释放移入 Db 下
HttpDispatcher->dispatch() 增加返回值 Response
修复 AtomicManager::wakeup() 返回值问题
文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文地址:https://www.oschina.net/news/108611/imi-1-0-4-released
精彩推荐: