PHP ORM 持久層框架解決方案

2022-03-12 05:07:25 字數 1281 閱讀 3413

重點推薦:

---- php.activerecord

2、doctrine

doctrine是乙個php的orm框架,它必須執行在》=php5.2.3版本上,它是乙個功能強大的資料抽象層.它的乙個主要特徵就是使用物件導向的方式來實現資料庫查詢的封轉,它底層通過乙個類似 hibernate hql的dql的查詢語句進行資料庫查詢, 這使得開發的靈活性更強,大大減小了重複**。相比propel,doctrine的優點在於它支援支援全文檢索,doctrine的文件一直就比propel要全面豐富,社群更活躍,而且使用起來更加自然、更易閱讀、更接近原生sql。效能方面也略微優於propel。同樣你也可以可以很方便的把doctrine整合到現有的應用框架中去,比如php框架symfony的1.3以後的版本將doctrine作為預設的orm框架,同時也可以將doctrine和codeigniter整合起來。

官方**:

3、ezpdo

ezpdo是乙個十分輕量級的php orm框架。ezpdo的作者的本意旨在降低複雜的orm學習曲線,盡可能在orm的執行效率和功能之間做乙個平衡點,它是我至今用過的最簡單的orm框架,我目前還想將它整合到我的coolphp sdk中來,而且執行效率相當不錯,功能也基本能滿足需求,只不過espdo的更新比較緩慢。

官方**:

4、redbean

redbean是乙個易於使用,輕量級php orm框架,提供對mysql, sqlite&postgresql的支援。redbean架構非常靈活,核心也非常簡約,開發者可以很方便的通過外掛程式來擴充套件功能。

官方**:

5、其他

國內的fleaphp開發框架基於tabledatagateway實現orm實現;zend framework除了提供對 sql 語句的封裝以外,也同樣實現了tablegateway、tablerowset、tablerow的實現;還有一些類似rails的activerecord實現的解決方案。

總結:

總的來說,一般orm框架對付簡單的應用系統來說都能滿足基本需求,可以大大降低開發難度,提高開發效率,但是它在sql優化方面,肯定是比純sql語言要差很多,對複雜關聯、sql內嵌表示式的處理都不是很理想。也許這主要是由於php本身物件持久化的問題,導致orm效率過低,普遍比純sql要慢10~50倍。但是這些都是有辦法解決的,最基本的解決效能的方案,我們可以通過快取來提高效率,hibernate來說,雖然配置比較繁雜,但是它通過靈活的使用二級快取和查詢快取極大的緩解資料庫的查詢壓力,極大的提公升了系統的效能。

持久層框架

1.spring data jpa實現動態查詢的兩種方法 criteria api 可移植。api並不依賴具體的資料庫,可以根據資料庫型別的不同生成對應資料庫型別的sql,所以其為可移植的。物件導向。criteria api是使用的是各種類和物件如criteriaquery predicate等構建...

Room SQLite持久層框架

android中提供了sqlite資料庫進行資料的持久化 並提供了對應api訪問資料庫,而room框架提供了sqlite資料訪問抽象層,為高效的資料庫訪問層帶來便捷 谷歌官方強烈推薦使用room框架操作sqlite資料庫 首先在build.gradle中新增必要依賴 dependencies建立實體...

持久層框架mybatis

本篇的中心內容,解決以下問題。持久層框架mybatis篇與mybatis plus使用 mybatis 是支援定製化 sql 儲存過程以及高階對映的優秀的持久層框架,其主要就完成 構建sqlsessionfactory過程 對映器的動態 sqlsession的4大物件 sql執行的過程 mybati...