imi v1.0.1,Swoole 協程應用開發框架

imi 介紹

clipboard.png

imi 是基於 PHP 協程應用開發框架,它支持 HttpApi、WebSocket、TCP、UDP 應用開發。git

由 Swoole 提供強力驅動,Swoole 擁有常駐內存、協程非阻塞 IO 等特性。github

框架遵照 PSR 標準規範,提供 AOP、註解、鏈接池、請求上下文管理、ORM模型等經常使用組件。segmentfault

imi 的模型支持關聯關係的定義,增刪改查一把梭!緩存

與其餘專一微服務領域的 Swoole 框架不一樣,imi 專一單體應用開發。緣由很簡單:大部分公司都不須要上微服務,單體應用足矣。框架

imi 框架第一個版本 v0.0.1 首發於 2018年6月21日

更新內容

新增

  • 增長單元測試(PHP7.1-7.四、nightly 所有經過),今後再也不擔憂修復一個 bug,產生更多 bug。這是一個長期任務,不斷充實測試用例,也歡迎你們來貢獻測試代碼!
  • 新增 ImiUtilCoroutine::create(),與 imigo() 行爲一致
  • 新增 ImiUtilHttpMessageUtil 類
  • 新增框架優先級定義,常量類:ImiUtilImiPriority

修復

  • 修復熱重啓問題:worker exit timeout, forced to terminate
  • 修復 PDO Statement 沒法命中緩存問題
  • 修復日誌重複寫入問題
  • 修復 MySQL->query() 方法不記錄最後執行 SQL 語句問題
  • 修復當設置task_enable_coroutine但不設置enable_coroutine時,task事件監聽參數錯誤問題
  • 修復類型聲明
  • 修復 RedisManager::getNewInstance() 沒法被 RedisManager::release() 釋放問題
  • 修正 Redis 相關類型註釋
  • 修復 withAddedHeader() 問題
  • 修復使用 TAutoInject 時,有父類致使沒法正常注入的問題
  • 修復Callback、CallableValue註解沒法注入屬性問題
  • 修復配置值注入、常量注入註解,沒法注入到屬性問題

優化

  • 優化 BeanProxy::getConfigInjects()
  • 優化 ImiDbQueryResult
  • 非 worker 進程投遞的 task,再也不自動 finish
  • 同步池子 getResource() 再也不有可能返回 null,一概拋出異常
  • ITaskHandler->handle() 支持返回值自動 finish
  • 規範內部監聽 IMI.INITED 事件的優先級
  • 優化 BeanProxy,如今不用等到回收週期,當即會被釋放
  • 注入屬性值的註解類改成 ImiAopAnnotationBaseInjectValue
  • 進程、進程池進程,強制開啓協程化

測試用例計劃及進度

  • [x] Aop
  • [x] Config
  • [ ] Cache
  • [x] Db
  • [x] Enum
  • [x] Event
  • [x] Inject
  • [x] Redis
  • [x] HttpServer
  • [x] HttpValidate
  • [ ] WebSocketServer
  • [ ] TCPServer
  • [ ] UDPServer
  • [x] Task
  • [ ] Lock
  • [ ] Log
  • [ ] Model
  • [ ] Process
  • [ ] Utils

clipboard.png

聯繫咱們

Github 反饋:https://github.com/Yurunsoft/...微服務

碼雲倉庫:https://gitee.com/yurunsoft/IMI單元測試

Segmentfault 提問:https://segmentfault.com/測試

開源中國 問答:https://www.oschina.net/question優化

QQ羣交流:17916227 點擊加羣spa

相關文章
相關標籤/搜索