j4mie/paris

PHP5的轻量级Active Record实现,基于Idiorm构建

安装量: 411,556

依赖: 30

建议者: 1

安全: 0

星星: 996

关注者: 59

分支: 131

公开问题: 3

v1.5.6 2017-03-21 02:13 UTC

This package is auto-updated.

Last update: 2024-09-19 05:03:54 UTC


README

Build Status Latest Stable Version Total Downloads

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

仅维护模式

从版本1.5.0开始,Idiorm和Paris被认为功能完善。虽然它们将继续通过修复错误来维护,但从此以后将不再添加新功能。这意味着,如果拉取请求对API进行了破坏性更改,或者需要除了补丁版本号以外的任何更改,则将不会合并。

请勿提交功能请求或API破坏性更改,因为它们将无礼地关闭。

我应该使用Idiorm/Paris吗?

如果你正在启动一个新项目

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

我建议你使用来自LaravelEloquent数据库库,因为它是在Taylor编写时基于Idiorm构建的。这意味着那里有相同的一些想法,但它得到了更积极的维护,并且有更现代的代码风格。

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

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

在这种情况下,你可以使用其他数据库库,如上面“如果你正在启动一个新项目”部分中提到的Laravel的Eloquent,或者你可以选择分叉Idiorm和/或Paris以应用自己的修改。

但是,为什么?

有关本项目状态的更多信息,请参阅j4mie/idiorm#360

PHP5的轻量级Active Record实现。

基于Idiorm构建。

在PHP 5.2.0+上测试过 - 可能可以通过PDO和正确的数据库驱动程序在早期版本上运行。

BSD许可证下发布。

特性

  • 极其简单的配置。
  • 公开了Idiorm的流畅查询API的全威力。
  • 支持关联。
  • 简单的机制来封装常见的查询在过滤器方法中。
  • 基于PDO
  • 在整个过程中使用预处理语句,以防止SQL注入攻击。
  • 数据库无关。目前支持SQLite、MySQL、Firebird和PostgreSQL。可能支持其他数据库,请尝试一下!
  • 支持模型集合,并支持方法链来过滤或一次性应用多个结果。
  • 支持多个连接

文档

文档托管在Read the Docs上:paris.rtfd.org

构建文档

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

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

  • 允许在遍历 find_many() 结果时使用 IDE 自动完成功能 [stratoss] - 问题 #128
  • 为模型属性记录 @property PHPDoc 注释以支持 IDE 自动完成 [Treffynnon]

1.5.5 - 发布于 2016-12-14

  • 修复了未正确生成连接表名的问题 [Ralphunter] - 问题 #109
  • 将 phpunit 添加为开发依赖项,并添加 composer 脚本(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

1.5.3 - 发布于 2014-06-25

  • 移除错误提交的 git 合并备份文件

1.5.2 - 发布于 2014-06-23

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

1.5.1 - 发布于 2014-06-22

  • 由于 HHVM 中存在错误,从 travis-ci 中移除 HHVM 构建目标

1.5.0 - 发布于 2014-06-22

1.4.2 - 发布于 2013-12-12

修复补丁更新以移除损坏的拉取请求 - 可能会影响利用了在 1.4.0 中合并的 "find_many() 现在返回一个以数据库主键为键的关联数组" 变更的 1.4.0 和 1.4.1 的用户。

  • 撤销拉取请求/问题 #133,因为它以之前未预料到的方式破坏了向下兼容性(参见 Idiorm 问题 #162#156#133) - 为将此更改合并到 Paris 致歉 - 关闭 Idiorm 问题 156

1.4.1 - 发布于 2013-09-05

1.4.0 - 发布于 2013-09-05

1.3.0 - 发布于 2013-01-31

  • 文档已移至 paris.rtfd.org,并现在使用 Sphinx 构建
  • 添加对多个数据库连接的支持 [tag] - 问题 #15
  • 允许为模型类名指定前缀 - 请参阅文档中的配置 - 关闭 问题 #33
  • 从 git 导出中排除测试和 git 文件(由 composer 使用)
  • 实现 set_expr - 关闭 问题 #39
  • 添加 is_new - 关闭 问题 #40
  • 在 Idiorm 中添加对新 IdiormResultSet 对象的支持 - 关闭 问题 #14
  • 将Composer更改为使用classmap,以便更好地支持自动加载 [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

1.1.0 - 发布于2011-01-24

  • 添加is_dirty方法

1.0.0 - 发布于2010-12-01

  • 初始发布