imi v1.0.4 發佈,多個功能組件功能加強和優化

3fe596f01f46a20ddbb324ed62600527a4e.jpg

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

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

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

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

毫秒級的註解及代碼熱更新,讓你在開發時只管一把梭,體驗與 fpm 下開發並沒有二致,保存就刷新,立馬看到效果。緩存

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

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

測試用例持續完善中,目前有 122 個測試,437 個斷言。微服務

更新內容

更新日誌

Lock

  • 新增 Lock 快捷類
  • 新增 Atomic 進程鎖
  • 新增 Lock 測試用例
  • 新增 Lock Annotation 測試用例
  • Lock 接口強類型定義
  • 支持配置定義 Lock,根據 lockId 操做
  • 修復 tryLock() 執行回調時,不返回 boolean 問題

MemoryTable

  • MemoryTable 支持使用類來定義結構
  • 支持在配置中設定 MemoryTable
  • 新增 MemoryTable 測試用例
  • 修復 MemoryTableManager 問題

ConnectContext

  • 重構,如今ConnectContext再也不本地存儲數據,再也不怕多個worker進程同時去讀寫
  • 新增 ConnectContext 鎖支持,如今讀寫數據不會衝突,必須設置鎖,升級請注意!
  • 新增內存表 ConnectContext Handler 支持

Cache

  • 新增 RedisHash Handler defaultHashKey
  • 新增緩存測試用例
  • 新增緩存註解測試用例
  • 修復 Cache Redis/RedisHash Handler 返回值問題
  • 修復 Cache File delete() 不刪除 .ex 文件問題
  • 修復 Cache File clear() 無返回值問題
  • 修復 Cache File getMultiple() 方法返回鍵爲數字問題

WebSocket

  • 新增 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() 返回值問題

聯繫咱們

Github 反饋:https://github.com/Yurunsoft/...測試

碼雲倉庫:https://gitee.com/yurunsoft/IMIspa

Segmentfault 提問:https://segmentfault.com/.net

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

QQ羣交流:17916227 點擊加羣

相關文章
相關標籤/搜索