一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

paris:实践指南

时间:2026-09-11 12:28:01 编辑:袖梨 来源:一聚教程网

如果把paris放进候选清单,不能只看热度;它的定位是PHP5 的轻量级 Active Record 实现,构建于 Idiorm 之上。在日常自动化场景里,常见问题是输入边界、依赖和失败处理如果不清楚就很难稳定复用,这正是评估时需要盯住的地方。短测时我会用一项范围明确的真实任务完成最小试跑,并保留配置时间、输出质量、异常信息和维护痕迹的结果,方便团队复盘。我的判断是,它更适合愿意先做小范围验证并复查原始文档的团队;若眼下没有这类需求,先保留观察即可。

巴黎

https://j4mie.github.io/idiormandparis/

仅维护模式

自版本 1.5.0 起,Idiorm 和 Paris 现在被认为功能已完成。虽然它们将继续通过错误修复进行维护,但从此时起将不会添加更多新功能。这意味着,如果拉取请求对 API 进行了重大更改,或者需要库的补丁版本更新以外的任何内容,那么它将不会被合并。

请不要提交功能请求或 API 重大更改,因为它们将在没有仪式的情况下关闭。

我应该使用 Idiorm/Paris 吗?

如果您要开始一个新项目

不建议您在新项目中使用 Idiorm 或 Paris。

我建议您使用来自 Laravel 的 Eloquent 数据库库,因为 Taylor 在编写它时基于 Idiorm。 这意味着那里存在许多相同的想法,但它的维护更加积极,并且具有更现代的代码风格。

如果您有基于 Idiorm 或 Paris 的现有项目

您可以继续使用这两个项目,因为它们将继续接收安全补丁和错误修复。 请务必注意,如果 PHP 的未来版本所需的更改会破坏向后兼容性,则可能不受支持。

此时,您可以使用另一个数据库库,例如 Laravel 中的 Eloquent(请参阅上面的“如果您正在开始一个新项目”),或者您可以决定分叉 Idiorm和/或Paris,以使用您自己的修改来修补它们。

但为什么?

有关该项目状态的更多信息,请参阅 https://github.com/j4mie/idiorm/issues/360

PHP5 的轻量级 Active Record 实现。

构建于 Idiorm 之上。

在 PHP 5.2.0+ 上进行测试 - 可能适用于具有 PDO 和正确数据库驱动程序的早期版本。

根据 BSD 许可证 发布。

特点

  • 配置极其简单。
  • 展示 Idiorm 的流畅查询 API 的全部功能。
  • 支持协会。
  • 将常见查询封装在过滤器方法中的简单机制。
  • 构建于 PDO 之上。
  • 始终使用 准备好的语句 来防止 SQL 注入 攻击。
  • 与数据库无关。目前支持SQLite、MySQL、Firebird和PostgreSQL。可以支持其他人,请尝试一下!
  • 支持具有方法链接的模型集合,以一次过滤多个结果或将操作应用于多个结果。
  • 支持多个连接

文档

该文档托管在阅读文档上:paris.rtfd.org

构建文档

您需要安装 Sphinx,然后在 docs 文件夹中运行:

make html

该文档现在位于 docs/_build/html/index.html 中

让我们看一些代码

class User extends Model {
    public function tweets() {
        return $this->has_many('Tweet');
    }
}

class Tweet extends Model {}

$user = Model::factory('User')
    ->where_equal('username', 'j4mie')
    ->find_one();
$user->first_name = 'Jamie';
$user->save();

$tweets = $user->tweets()->find_many();
foreach ($tweets as $tweet) {
    echo $tweet->text;
}

变更日志

1.5.6 - 2017-03-21 发布

  • foreach 超过 find_many() 结果时允许 IDE 自动完成 [stratoss] - 问题 #128
  • 记录模型属性 [自动完成的 @property PHPDoc 注释 Treffynnon]

1.5.5 - 2016-12-14 发布

  • 修复连接表名称未正确生成的问题 [Ralphunter] - 问题 #109
  • 添加 phpunit 作为开发依赖项和编写器脚本 (composer test) 以轻松运行测试 [Treffynnon]
  • 允许静态请求的全局设置,以避免被迫使用名称空间+类作为自动表名称 [michaelward82] - 问题 #100
  • 静态模型调用和 auto_prefix_models [之间的文档冲突 michaelward82] - 问题 #102
  • 为魔术方法 [添加了 @method 标签 stellis] - 问题 #104
  • 添加缺少的 __unset() 魔术方法 [qyanu] - 问题 #106
  • 从 travis-ci 容器中删除 PHP 5.2 以进行测试(注意 尽管如此,Idiorm 仍然支持 PHP 5.2)[Treffynnon]

1.5.4 - 2014-09-23 发布

  • 更正文档块中 2 个模型函数 [的返回值 michaelward82] - 问题 #99

1.5.3 - 2014-06-25 发布

  • 删除错误提交的 git merge 备份文件

1.5.2 - 2014-06-23 发布

  • Paris 错误地依赖 composer.json [中的旧 Idiorm 版本 ilsenem] - 问题 #96

1.5.1 - 2014-06-22 发布

  • 从 travis-ci 中删除 HHVM 构建目标,因为 HHVM 中存在错误

1.5.0 - 2014-06-22 发布

  • 允许静态调用模型子类,在表名生成期间忽略名称空间信息 [michaelward82] - 问题 #90
  • 防止无效方法调用触发无限递归 [michaelward82] - 问题 #75
  • 允许链接 set()set_expr() 方法 [naga3] - 问题 #94
  • 将 HHVM 添加到 travis-ci 构建矩阵 [ptarjan] - 问题 #81
  • 改进连接文档 [rhynodesigns] - 问题 #92
  • 改进代码文档块 [michaelward82] - 问题 #91
  • 改进代码文档块和空白 [michaelward82] - 问题 #93
  • 改进连接文档 [kkeiper1103] - 问题 #79

1.4.2 - 2013-12-12 发布

用于删除损坏的拉取请求的补丁更新 - 可能会对 1.4.0 和 1.4.1 的用户产生影响,这些用户利用了在 1.4.0 中合并的“find_many() 现在返回一个以数据库主 ID 作为数组键的关联数组”更改。

  • 退出拉 request/issue #133,因为它以以前意想不到的方式破坏了向后兼容性(请参阅 Idiorm 问题 #162、#156 和 #133) - 抱歉将此更改合并到巴黎 - 关闭 Idiorm 问题 156

1.4.1 - 2013-09-05 发布

  • 将 Idiorm 的 composer.json 要求增加到 1.4.0 [michaelward82] - 问题 #72

1.4.0 - 2013-09-05 发布

  • 直接调用模型类的方法,例如。 User::find_many() - PHP 5.3 仅 [Lapayo] - 问题#62
  • find_many() 现在返回一个关联数组,其中数据库主 ID 作为数组键 [Surt] - 请参阅提交 9ac0ae7 和 Idiorm 问题#133
  • 将 PSR-1 兼容的 camelCase 方法调用添加到 Idiorm(需要 PHP 5.3+)[crhayes] - 问题 #59
  • 允许关系方法 [上的连接规范 alexandrusavin] - 问题 #55
  • 使 tests/bootstrap.php HHVM 兼容 [JoelMarcey] - 问题 #71
  • belongs_to 不适用于 $auto_prefix_models (问题 #70)

1.3.0 - 2013-01-31 发布

  • 文档已移至 paris.rtfd.org,现在使用 Sphinx 构建
  • 添加对多个数据库连接的支持 [标签] - 问题 #15
  • 允许模型类名称使用前缀 - 请参阅文档中的配置 - 关闭 问题 #33
  • 从 git 导出中排除测试和 git 文件(由作曲家使用)
  • 实施 set_expr - 关闭 问题 #39
  • 添加 is_new - 关闭 问题 #40
  • 在 Idiorm 中添加对新 IdiormResultSet 对象的支持 - 关闭 问题 #14
  • 更改 Composer 以使用类映射,以便更好地支持自动加载 [javierd] - 问题 #44
  • 将测试移至 PHPUnit 以匹配 Idiorm
  • 更新包含的 Idiorm 版本以进行测试
  • 移动文档以使用 Sphinx

1.2.0 - 2012-11-14 发布

  • 通过 packagist 安装 Composer (j4mie/paris)
  • 添加基本命名空间支持,请参阅 问题 #20
  • 允许在 set() 中将属性设置为关联数组,请参阅 问题 #13
  • idiorm 中的补丁现在允许保存空模型(j4mie/idiorm 参见 问题 #58)

1.1.1 - 2011-01-30 发布

  • 修复不正确的测试,请参阅 问题 #12

1.1.0 - 2011-01-24 发布

  • 添加is_dirty方法

1.0.0 - 2010-12-01 发布

  • 初次发布

热门栏目