imi v0.3 釋出,自動管理請求上下文,新增引數過濾器
親愛朋友們,我又回來了,想死你們啦!
2個多月沒有刷版本號,imi 並沒有涼,而是因為我實在太忙啦!
我們公司專案使用 imi 已經上線,這兩個多月大部分時候是針對 imi 做 bug 修復,以及開發體驗的細節上的提升。
這次 v0.3 版本釋出是這兩個月工作成果的一次總結,在此感謝群友們為 imi 做出的貢獻!
最後,距離 imi 的 v1.0 正式版釋出越來越近啦!
更新日誌
新增
-
新增方法引數過濾器 FilterArg
-
新增 ArrayUtil::random() 方法,獲取隨機成員
-
新增 imigo 函式(啟動一個協程,自動建立和銷燬上下文)
-
新增 imiCallable 函式(為傳入的回撥自動建立和銷燬上下文,並返回新的回撥)
-
新增 IMI.REQUEST_CONTENT.CREATE、IMI.REQUEST_CONTENT.DESTROY事件
-
新增註解: DbInject、RedisInject、PoolResource
可用於注入連線池中的資源物件到屬性
-
新增支援根據記錄數計算總頁數, Pagination->calcPageCount
-
快取註解允許指定 hash 方法,預設為 md5
調整/增強
-
調整模型生成邏輯,生成表結構定義在基類,實際的模型類繼承基類
修改了表結構重新生成模型,也不用擔心會覆蓋掉模型類中自己寫的方法
-
現在注入方法的 Before 也可以修改引數了
-
ExtractData 註解從此脫離 HttpValidation 註解依賴
-
調整預設 runtime 路徑為:專案名稱空間根下的 .runtime 目錄中
避免預設在 /tmp 目錄中,可能被 linux 內建清理給清掉了
-
熱更新程序預設將 runtime 目錄加入排除
-
調整連線池配置 maxActiveTime 預設值為 null,新增 maxUsedTime 引數
-
調整連線池配置,當 gcInterval 為 null 時,不啟動定時器
-
禁止在 MacOS 下設定程序名,解決報錯問題
-
連線池配置預設 minResources 調整為 1
-
資料庫查詢器的 join 方法現在支援對錶名使用 as 設定別名
例:Db::query()->join('table as alias')
-
為 PDO Statement 相容支援 bool 型別值代入
-
Cache 相關注解的 key 屬性,支援用 {:args} 代入所有方法引數的 hash 值
-
當使用 Swoole 協程 Redis 時,支援使用 _serialize() 方法
-
新增路由初始化時的伺服器型別判斷
-
調整熱更新檢測用到的檔案路徑到 runtime 中
-
View 註解的 renderType 屬性預設設定從 html 改為 json
原因:使用 imi 更推薦是用於開發介面,而不是用於後端頁面渲染
修復
-
修正錯誤的註釋
-
修復 Session 中介軟體潛在問題
-
修復 ExtractData注 解在特定情況無效問題
-
修復記憶體表模型,當屬性名和 Column 註解中設定不一致時的問題
-
修復使用記憶體表模型時的 Trying to get property of non-object 問題
-
修復 buildRuntime 問題
-
修復 Statement 問題
-
修復資料庫連接回收後還有殘留的問題(Statement 快取化的原因)
-
修復連線池資源釋放,以及併發情況下數量超過 maxResources 配置的問題
-
修復池子重複初始化問題
-
修復資料庫關鍵詞處理邏輯問題
-
修復當刪除檔案時,熱更新報錯問題
-
修復一個 notice 問題
-
修復部分場景下,框架內部無法正常啟動命令列
-
修復查詢器 leftJoin() 方法實際為 inner join 的問題
-
修復 WS、TCP、UDP 註解中介軟體問題
-
修復快取功能在非伺服器上下文下無法使用的問題
-
修復使用 ? 預處理 SQL 的問題
-
修復 imi/buildImiRuntime 後存在的註解修改無效問題
-
修復重複 send() 導致的 Http request is finished 問題
-
修復 WebSocket 無法握手問題
-
修復少數環境中無法正常啟動專案的問題
-
修復配置檔案注入屬性的問題
-
修復 logCacheNumber 數字判定 bug
-
修復 Call to a member function isVariadic() on null 問題
-
修復 TCP、UDP 作為子伺服器時的 setting 問題
-
修復配置路由問題
-
修復程序池程序名稱問題
-
修復命令列引數解析不嚴謹的問題
-
修復類沒有被 use 的問題
-
修復驗證失敗時,buildMessage 存在的問題
介紹
imi 是基於 PHP 協程應用開發框架,它支援 HttpApi、WebSocket、TCP、UDP 應用開發。
由 Swoole 提供強力驅動,Swoole 擁有常駐記憶體、協程非阻塞 IO 等特性。
框架遵守 PSR 標準規範,提供 AOP、註解、連線池、請求上下文管理、ORM模型等常用元件。
imi 的 模型支援關聯關係的定義 ,增刪改查一把梭!
文件手冊: https://doc.imiphp.com/
程式碼倉庫:
碼雲: https://gitee.com/yurunsoft/IMI
Github: https://github.com/Yurunsoft/IMI
Demo: https://gitee.com/yurunsoft/imi-demo
imi 元件倉庫: https://github.com/imiphp
imi名字由來
宇潤我是一個小米公司、小米產品、雷軍的粉絲。我對 imi 的正確分詞是i mi。諧音愛米,中式英語的意思是我米。
尋有緣人
想要加入我們嗎?開源專案不能只靠一兩個人,而是要靠大家的努力來完善~
我們需要你的加入,你可以做的事(包括但不限於以下):
-
糾正拼寫、錯別字
-
完善註釋
-
bug 修復
-
功能開發
-
教程、部落格分享