imi協程開發框架是基於Swoole的PHP協程開發框架,它支援Http、Http2、WebSocket、TCP、UDP、MQTT等主流協定的服務開發,特別適合互聯網微服務、即時通訊聊天im、物聯網等場景! 。
核心組件:
HttpApi、WebSocket、TCP、UDP、MQTT伺服器
MySQL連線池(主從+負載平衡)
Redis連接池(主從+負載平衡)
超好用的ORM(Db、Redis、Tree)
毫秒級熱更新
AOP
Bean容器
快取(Cache)
配置讀寫(Config)
列舉(Enum)
事件(Event)
門面(Facade)
驗證器(Validate)
鎖(Lock)
日誌(Log)
非同步任務(Task)
環境要求:
Redis、MySQL
imi協程開發框架更新日誌:
v2.0.11
增強
熱更新支援重新載入配置文件
新增Server::getConnections()、Server::getConnectionCount()(#203)
支援往模型中動態寫入數據,但不支援toArray()和序列化
SQL監聽支援捕獲異常
Workerman環境啟動支援輸出network訊息
with()關聯預載特性
這個版本實現了模型關聯查詢with特性,可以減少查詢次數提升關聯查詢效能
支援在關聯註解中設定with=true開啟自動預先載入
支援在關聯註解中設定withFields={"指定序列化欄位"}
支援在Model::query()後呼叫with()方法指定預先載入的關聯屬性名
支援在Model::query()後呼叫with()方法指定預先載入關聯屬性名稱對應的回調
支援在Model::query()後呼叫withField()指定查詢出來的模型,序列化時的字段
Model::queryRelationsList()支援預先載入查詢
最佳化
改進開發體驗(#197)
優化Swoole下文件掃描效能
相容於關閉Swoole短名稱的場景
優化AppContexts::APP_PATH處理為絕對路徑
優化json錯誤拋出異常的容錯
單元測試改進(#202)
重構HTTP路由提升效能(#200)
優化ArrayList類型不對應時的提示
產生模型時,將json類型欄位的getter方法設為參考返回,以便修改數據
優化一些程式碼
修復
修正@app.overrideDefaultIgnoreNamespace、@app.overrideDefaultIgnorePaths配置不生效問題
修復Request執行setUri()時會觸發initUri()
修復權限元件轉為樹狀的問題(#201)
修復SessionId為空字串時當作正常Session的問題
修復空SessionJson解析失敗
修復SwooleRedisServerUtil
修復WorkermanUDP無法從請求上下文取得packetData
修正ManyToMany、PolymorphicToMany、PolymorphicManyToMany註解指定fields參數無效