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

QueryPHP v1.0.0-beta.5,這個版本主要改進 ORM 和大量細節的優化。php

關於 QueryPHP

QueryPHP 是一款現代化的高性能 PHP 漸進式協程框架, 咱們仍是主要面向傳統 PHP-FPM 場景,以工程師用戶體驗爲歷史使命,讓每個 PHP 應用都有一個好框架。git

百分之百單元測試覆蓋直面 Bug,基於 Zephir 實現框架核心常駐,依託 Swoole 協程提高業務性能,此刻將來逐步漸進。 咱們的願景是 USE LEEVEL WITH SWOOLE DO BETTER, 讓您的業務撐起更多的用戶服務。github

更新日誌

  • [ framework ] 將底層 redis 服務拆分出來註冊到 IOC 容器,能夠方便使用
  • [ framework ] 刪除本身的 dd,dump 調試函數,Symfony 自帶不須要再弄了。
  • [ framework ] 移除全局函數 app,hl 助手函數,由靜態代理實現 App (別名 Leevel )來,App::path(),App 能夠訪問 IOC 容器中的方法 App::make('request')。
  • [ framework ] 刪除代理中全部接口設計 LeevelKernelProxyIApp,刪除組件中的 Proxy 改成用 @method 來實現 IDE helper,並內置一個用於生成這樣的命令工具自動生成。
  • [ framework ] 優化 swoole 熱重載代碼,利於測試。
  • [ framework ] 改進系統異常處理組件,例外將系統內置異常改成 abstract 方便業務層繼承更好地處理異常,添加一個業務處理異常 LeevelKernelExceptionBusinessException,異常響應也會通過中間件處理。
  • [ framework ] 核心 kernel 和路由支持對 CORS options 請求的處理,利用自定義中間件輕鬆處理跨域訪問問題,分拆路由綁定解析方法,代碼更清。
  • [ framework ] 關聯模型,改進 ORM 關聯查詢源值爲空的特殊處理 ,再也不執行後續查詢,減小數據庫查詢,修復嵌套關聯預載入查詢未執行到的 BUG。
  • [ framework ] 爲各個組件助手函數添加一個靜態訪問,分拆各個組手函數到單獨的文件方便 f 調用。
  • [ framework ] 實體添加更多 const 如 CONSTRUCT_PROP_WHITE,MIDDLE_SOURCE_KEY 避免寫死實體一些約定的名字。
  • [ framework ] 數據庫 PDO 查詢改進,該是數字就返回數字,再也不所有返回字符串。
  • [ framework ] 查詢新增 where('foo', '=', null) 的支持,處理很是特殊場景,之前直接報錯。
  • [ framework ] 改進實體 LeevelDatabaseDddEntity toArray 設計,如今 null 會被自動忽略。
  • [ framework ] 改進實體 LeevelDatabaseDddEntity 屬性相關設計,withProps,withProp,hasProp,prop 來訪問。
  • [ framework ] 改進實體 LeevelDatabaseDddEntity 軟刪相關設計,實體一旦定義了 const DELETE_AT,系統查詢和刪除自動走軟刪除,也能夠經過 withSoftDeleted 查詢包含軟刪除的數據,forceDelete 強制刪除。
  • [ framework ] 改進實體 LeevelDatabaseDddEntity 中查詢實體 find($id) 改成 findEntity($id),更容易理解,例外能夠避免和 find() 查詢使用理解衝突。
  • [ framework ] 修復 redis 鏈接池鏈接 PHPRedis 驅動支持重連。
  • [ framework ] 驗證器會自動轉換驗證參數 not_between:1,5 爲 int 和 float,以便於框架實現統一強類型的總體方向,例外數據庫惟一驗證 LeevelValidateUniqueRule 自動識別 int 和 float,避免數據庫查詢出現轉換類型而再也不走索引影響性能。
  • [ framework ] 改進實體 LeevelDatabaseDddEntity 查詢設計,去掉查詢魔術方法,__call 和 ___callStatic 被屏蔽,全部查詢均須要經過靜態入口 select(別名 find,保留致敬 QeePHP 習慣),meta(保留致敬 QeePHP 習慣) 發起,再加上 ide helper 支持,完美支持 IDE。
  • [ framework ] 改進實體鏈接 LeevelDatabaseDddEntity 切庫設計,由每一個實體本身實現 withConnect 和 connect,更加更新可控,提供切庫安全沙盒 connectSandbox。
  • [ framework ] 採用 PDOStatement->debugDumpParams() 來獲取最後的 SQL,同時在 debug 組件將 SQL 寫入日誌方便開發調試。
  • [ framework ] 事務工做單元 LeevelDatabaseDddUnitOfWork 增長對軟刪除」強刪除的支持,也包含倉儲對此的調整 LeevelDatabaseDddRepository。
  • [ 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.comredis

QQ 羣 288751294數據庫

Email: 635750557@qq.com跨域

幫助咱們

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

若是你以爲能夠,能夠推薦朋友來試用一下,關注一哈,但願吸引到有興趣的一塊兒開發,文檔基於單元測試加註釋來自動化的比較簡單。swoole

2010-present by Xiangmin Liuphp7

相關文章
相關標籤/搜索