首頁 > 後端開發 > php教程 > QueryPHP V1-beta.5 改善 ORM 設計體驗

QueryPHP V1-beta.5 改善 ORM 設計體驗

藏色散人
發布: 2023-04-07 12:10:01
轉載
1727 人瀏覽過

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

#https://www.queryphp.com

更新日誌

【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 發布。

聯絡方式

https://www.queryphp.com

#幫助我們

QueryPHP 是在2016 年10 月開始基於一個我早年的PHP 框架DoYouHaoBaby 框架開發的,這個早年的框架是我在2010 年7.8 月開始的。

如果你覺得可以,可以推薦朋友來試用一下,關註一哈,希望吸引到有興趣的一起開發,文檔基於單元測試加註釋來自動化的比較簡單。

以上是QueryPHP V1-beta.5 改善 ORM 設計體驗的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:learnku.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板