softwarepunt/php-activerecord

php-activerecord 是一个基于 ActiveRecord 模式的开源 ORM 库。

v1.3 2024-04-05 16:23 UTC

This package is auto-updated.

Last update: 2024-09-11 10:40:15 UTC


README

这是对 php-activerecord 的分支,最初由 @kla@jpfuentes2 和其 贡献者 编写。

重要

php-activerecord 已不再积极维护,原始网站已失效,项目基本上已被放弃。

我不会推荐这个 ORM 用于任何新的项目或开发。

这个分支包含一些提升用户体验的改进、对最新 PHP 版本的支持以及一些修复,这些对我们和一些我们维护的旧项目是相关的。

安装

我们建议使用 composer

composer require softwarepunt/php-activerecord:dev-master

因为我们没有积极维护此项目的标签或版本,你应该参考 dev-master

文档与用法

(⚠ phpactiverecord.org 已失效并被他人占用,最好忽略它。)

分支变更

这个分支目前仅与 PHP 8.1 兼容!

修复

  • 随着时间的推移,对 PHP 7.2、8.0、8.1 的兼容性修复
  • activerecord_autoload 在库加载多次时不再引起冲突。
  • 修复了 find_by_pk() 中的 count(): Parameter must be an array or an object that implements Countable 错误。
  • 修复了如果输入为空(例如空字符串)则 castIntegerSafely() 抛出错误的情况,现在只返回零。

增强

  • DateTime:实现 \JsonSerializable,以 "c" 模式格式化。

  • Model 添加了 set_is_new_record(bool),以帮助修改内部状态。

  • Connection 添加了实验性的 reconnect() 函数。

  • 添加了 stupidfastquery($options):将选项转换为查询,并返回不带任何 activerecord 魔法的原始 PDO 结果集。

  • 添加了 stupidfastqueryValues($options, $colIndex = 0):运行 stupidfastquery 并返回列值的数组。

  • 添加了 stupidfastcount($options):运行查询,只返回行数。

  • 添加了 find_all_with_wrapped_sort($options):将结果包装在单独的 SELECT 中,以加快 JOIN 重量查询的排序速度。

  • query_info 传递给 find($options) 选项,以获取生成的查询数据作为结果(由 stupidfastcount & co 内部使用) - 如果你想将 $options 转换为实际的语句,则可以使用它

    [
      'query' => $sql->to_s(),
      'values' => $sql->get_where_values(),
      'readonly' => $readonly,
      'eager_load' => $eager_load
    ];