ovos/doctrine1

Doctrine v1,数据库ORM,PHP 5.3-8.2 兼容

v1.3.4 2022-10-17 09:57 UTC

This package is auto-updated.

Last update: 2024-08-30 17:49:27 UTC


README

Build Status

文档

这是 doctrine/doctrine1 的分支,已调整以兼容 php 5.3-8.3 和 mysql 5.7 以及 8.0。仅测试了 mysql。

只要我们使用它,就会继续维护。欢迎提交您的 问题拉取请求

还有一些性能调整和功能添加,例如。

  • [BC BREAK] 修改 doctrine 集合 & 记录序列化 - 缓存中存储更少的数据,但会失去保持修改后数据状态的功能
  • [BC BREAK] 修复了关系中的 orderBy 处理 - 要按 refClass 中的列对 m2m 关系进行排序,请使用 refOrderBy
  • 重构了 Doctrine_Record 中的 link/unlink 方法 - 现在在链接/解除链接之前不再加载整个关系
  • 在 Record 中添加了 postRelatedSave 钩子,在保存后、所有关系都保存之后调用(原始的 postSave 方法在保存任何关系之前调用)
  • 添加了 Doctrine_Query_Abstract::getDqlWithParams - 返回由此查询对象表示的 DQL 查询,包含插值参数值,并修改了 Doctrine_Connection 以在可能的情况下使用 PDO::quote 进行字符串引用
  • 重构了查询缓存
    • 仅在实际的 getSqlQuery 方法中挂钩,而不是在 execute 方法中(更好的缓存使用)
    • 添加了 rootAlias、sqlParts(无偏移量或限制)、isLimitSubqueryUsed 和 limitSubquery 到缓存中
    • 始终在 getSqlQuery 中预先查询查询,在生成任何 SQL 之前调用 dql 回调,而不仅仅是执行(),这样缓存哈希值始终正确计算,并且此方法始终返回实际末查询,包括任何来自 dql 回调的修改
    • 添加了 isQueryCacheEnabled() 方法
    • 缓存无限制和偏移量的查询(以节省更少的缓存记录) - 添加了 Doctrine_Core::ATTR_QUERY_CACHE_NO_OFFSET_LIMIT - 设置为 true 以启用该功能
    • 为子查询添加了父查询组件,以指示子查询上下文 - 更改缓存哈希
    • WHERE IN 调整以获得更好的缓存和性能
  • 为 mysql 5.7 和性能进行限制子查询调整

这些只是亮点,完整的变更日志在此

安装

composer require ovos/doctrine1