QueryPHP v1.0.0-beta.5, 這個版本主要改進 ORM 和大量細節的最佳化。
關於QueryPHP
QueryPHP 是一款現代化的高效能PHP 漸進式協程框架,我們也是主要針對傳統PHP-FPM 場景,以工程師使用者體驗為歷史使命,讓每個PHP 應用都有一個好框架。
百分之百單元測試涵蓋直面 Bug,基於 Zephir 實現框架核心常駐,依托 Swoole 協程提升業務性能,此刻未來逐步漸進。我們的願景是 USE LEEVEL WITH SWOOLE DO BETTER, 讓您的業務撐起更多的用戶服務。
https://github.com/hunzhiwange/queryphp
#https://gitee.com/dyhb/queryphp
更新日誌
【framework】將底層redis 服務分割出來註冊到IOC容器,可以方便使用
【framework】刪除自己的dd,dump 偵錯函數,Symfony 自帶不需要再弄了。
【framework】移除全域函數app,hl 助手函數,由靜態代理實作App(別名Leevel)來,App::path (),App 可以存取IOC 容器中的方法App::make ( 'request')。
【framework】刪除代理程式中所有介面設計\Leevel\Kernel\Proxy\IApp ,刪除元件中的Proxy 改為用@method 來實作IDE helper, 並內建一個用於產生這樣的指令工具自動生成。
【framework】優化 swoole 熱重載程式碼,利於測試。
【framework】改進系統異常處理元件,例外將系統內建異常改為abstract 方便業務層繼承更好地處理異常,添加一個業務處理異常\Leevel\Kernel\Exception\BusinessException, 異常響應也會經過中間件處理。
【framework】核心 kernel 和路由支援對 CORS options 請求的處理,利用自訂中間件輕鬆處理跨域存取問題,分拆路由綁定解析方法,程式碼更清楚。
【framework】關聯模型,改進 ORM 關聯查詢來源值為空的特殊處理 ,不再執行後續查詢,減少資料庫查詢,修復巢狀關聯預載入查詢未執行到的 BUG。
【framework】為各個元件助手函數新增一個靜態訪問,分拆各個組手函數到單獨的檔案方便 f 呼叫。
【framework】實體增加更多 const 如 CONSTRUCT_PROP_WHITE,MIDDLE_SOURCE_KEY 避免寫死實體一些約定的名字。
【framework】資料庫 PDO 查詢改進,該是數字就回傳數字,不再全部回傳字串。
【framework】查詢新增 where ('foo', '=', null) 的支持,處理非常特殊場景,以前直接報錯。
【framework】改進實體 \Leevel\Database\Ddd\Entity toArray 設計,現在 null 會被自動忽略。
【framework】改進實體 \Leevel\Database\Ddd\Entity 屬性相關設計,withProps,withProp,hasProp,prop 來存取。
【framework】改進實體\Leevel\Database\Ddd\Entity 軟體刪相關設計,實體一旦定義了const DELETE_AT,系統查詢和刪除自動走軟刪除,也可以透過withSoftDeleted 查詢包含軟體刪除的數據, forceDelete 強制刪除。
【framework】改進實體\Leevel\Database\Ddd\Entity 中查詢實體find ($id) 改為findEntity ($id), 更容易理解,例外可以避免和find () 查詢使用理解衝突。
【framework】修復 redis 連線池連接 PHPRedis 驅動支援重連。
【framework】驗證器會自動轉換驗證參數not_between:1,5 為int 和float,以便於框架實現統一強類型的整體方向,例外資料庫唯一驗證\Leevel\Validate\UniqueRule 自動辨識int和float,避免資料庫查詢出現轉換類型而不再走索引影響效能。
【framework】改進實體\Leevel\Database\Ddd\Entity 查詢設計,去掉查詢魔術方法,__call 和___callStatic 被屏蔽,所有查詢均需要透過靜態入口select (別名find, 保留致敬QeePHP 習慣),meta (保留致敬QeePHP 習慣) 發起,再加上ide helper 支持,完美支持IDE。
【framework】改進實體連接 \Leevel\Database\Ddd\Entity 切庫設計,由每個實體自行實現 withConnect 和 connect,更加更新可控,提供切庫安全沙盒 connectSandbox。
【framework】採用 PDOStatement->debugDumpParams () 來取得最後的 SQL,同時在 debug 元件將 SQL 寫入日誌方便開發偵錯。
【framework】交易工作單元 \Leevel\Database\Ddd\UnitOfWork 增加對軟刪除」強刪除的支持,也包含倉儲對此的調整 \Leevel\Database\Ddd\Repository。
【framework】修復並刪除實體和倉儲中的 flushed 已經刷新過資料的特性,無必要。
【tests】新增 10 多例 swoole 相關的測試案例和其它,單元測試 3080 多例,斷言 10000 。
【application】QueryPHP 本身是一個基於 IViewUI 的標準後台,自帶基於資源的權限系統,由於框架大量調整後台做了相應的調整以便於運行。
【application】QueryPHP 本身是主要引入 Workflow 來改善 curd 操作,將查詢併入到服務中。
RoadMap
【framework】Beta 4-6 主要是 Swoole 4 最新版的協程完善支援。
【framework】RC 版本會凍結計畫功能,只修正 BUG、單元測試 和文件完善。
【framework】v1.0.0 正式版本將隨 PHP 7.4 版本後發布 https://wiki.php.net/todo/php74,計畫在 2019.12 發布。
聯絡方式
#幫助我們
QueryPHP 是在2016 年10 月開始基於一個我早年的PHP 框架DoYouHaoBaby 框架開發的,這個早年的框架是我在2010 年7.8 月開始的。
如果你覺得可以,可以推薦朋友來試用一下,關註一哈,希望吸引到有興趣的一起開發,文檔基於單元測試加註釋來自動化的比較簡單。
以上是QueryPHP V1-beta.5 改善 ORM 設計體驗的詳細內容。更多資訊請關注PHP中文網其他相關文章!