voku/idiorm

此包已被废弃,不再维护。作者建议使用j4mie/idiorm包代替。

轻量级的近乎零配置对象关系映射器和PHP5的流畅查询构建器

v2.1.7 2016-12-17 23:22 UTC

README

Build Status Coverage Status codecov.io Scrutinizer Code Quality Codacy Badge SensioLabsInsight Latest Stable Version Total Downloads Latest Unstable Version PHP 7 ready License

http://j4mie.github.com/idiormandparis/

警告:这只是一个对 "https://github.com/j4mie/idiorm/" 的维护分支

轻量级的近乎零配置对象关系映射器和PHP5的流畅查询构建器。

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

BSD许可下发布。

另请参阅:基于Idiorm构建的Active Record实现Paris

功能

  • 使简单查询和简单CRUD操作变得完全无痛苦。
  • 当需要更复杂的SQL时,不会碍事。
  • 建立在PDO之上。
  • 在整个过程中使用预处理语句,以防止SQL注入攻击。
  • 不需要模型类,不需要XML配置,也不需要代码生成:仅提供一个连接字符串即可直接使用。
  • 由一个名为ORM的主要类组成。其他类以Idiorm为前缀。全局命名空间污染最小。
  • 数据库无关。目前支持SQLite、MySQL、Firebird和PostgreSQL。可能支持其他数据库,请尝试一下!
  • 支持使用方法链对多个结果进行过滤或应用操作的多模型集合。
  • 支持多个连接
  • PSR-1兼容的方法(任何方法都可以用驼峰命名法调用,而不是下划线,例如find_many()变为findMany()) - 您需要PHP 5.3+。

文档

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

构建文档

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

make html

文档现在将在docs/_build/html/index.html中

让我们看看一些代码

$user = ORM::for_table('user')
    ->where_equal('username', 'j4mie')
    ->find_one();

$user->first_name = 'Jamie';
$user->save();

$tweets = ORM::for_table('tweet')
    ->select('tweet.*')
    ->join('user', array(
        'user.id', '=', 'tweet.user_id'
    ))
    ->where_equal('user.username', 'j4mie')
    ->find_many();

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

变更日志

  • 修复了ORM::__callStatic()

2.1.0 - 发布于2015-12-03

2.0.0 - 发布于 2015-12-02

  • 增加了 PSR-4 自动加载器
  • 增加了 phpdocs
  • 修复了 ORM::having_id_is() 中缺少变量的错误

1.5.1 - 发布于 2014-06-23

1.5.0 - 发布于 2014-06-22

1.4.1 - 发布 2013-12-12

修复更新以删除一个损坏的拉取请求 - 可能会影响利用 1.4.0 中合并的 "find_many() 现在返回一个关联数组,其中数据库主键作为数组键" 更改的 1.4.0 用户。

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

1.4.0 - 发布 2013-09-05

1.3.0 - 发布 2013-01-31

  • 文档已迁移至 idiorm.rtfd.org,并现在使用 Sphinx 构建
  • 添加对多个数据库连接的支持 - 关闭 问题 #15 [tag]
  • 添加 raw_execute - 关闭 问题 #40 [tag]
  • 添加 get_last_statement() - 关闭 问题 #84 [tag]
  • 添加 HAVING 子句功能 - 关闭 问题 #50
  • 添加 is_new 方法 - 关闭 问题 #85
  • ArrayAccess 支持添加到模型实例,允许通过 $model['field'] 以及 $model->field 访问属性 - 问题 #51
  • 为模型集合添加结果集对象,支持方法链以一次性过滤或应用多个结果 - 问题 #51#22
  • 添加对 Firebird 的支持,包括 ROWSTO 结果集限制和标识符引用 [mapner] - 问题 #98
  • 修复 PostgreSQL 使用 RETURNING 的最后插入 ID - 关闭问题 #62#89 [laacz]
  • 在执行查询后重置 Idiorm,以便调用 count() 然后调用 find_many() [fayland] - 问题 #97
  • 将 Composer 更改为使用类映射,以更好地支持自动加载 [javierd] - 问题 #96
  • 将查询日志添加到 delete_many [标签]
  • 修复仅使用 set_expr 时不触发查询创建的问题 - 解决 问题 #90
  • 在 "_quote_identifier_part" 中转义引号符号 - 解决 问题 #74
  • 修复聚合函数总是返回 int 而有时需要 float 的问题 - 解决 问题 #92
  • 将测试移动到 PHPUnit 以统一方法测试和查询生成测试

1.2.3 - 发布 2012-11-28

  • 修复 问题 #78 - 移除 PHP 5.3 静态调用的使用

1.2.2 - 发布 2012-11-15

  • 修复输入参数作为部分索引、部分关联发送的 bug

1.2.1 - 发布 2012-11-15

  • 修复由 IdiormStringException 未扩展 Exception 引起的轻微 bug

1.2.0 - 发布 2012-11-14

  • 为通过 packagist 安装设置 composer (j4mie/idiorm)
  • 添加 order_by_expr 方法 [sandermarechal]
  • 添加对不带参数的原始查询的支持 [sandermarechal]
  • 通过将关联数组传递到 set 方法以一次设置多个属性的支持 [sandermarechal]
  • 允许将关联数组传递到 configure 方法 [jordanlev]
  • 允许空的 Paris 模型保存的补丁 ([j4mie/paris]) - 问题 #58
  • 添加 select_manyselect_many_expr - 解决问题 #49#69
  • 添加对 MINAVGMAXSUM 的支持 - 解决 问题 #16
  • 添加 group_by_expr - 解决 问题 #24
  • 添加 set_expr 以允许将数据库表达式设置为 ORM 属性 - 解决问题 #59#43 [brianherbert]
  • 修复连接表时列名不明确的问题 - 问题 #66 [hellogerard]
  • 添加 delete_many 方法 [CBeerta]
  • 允许取消设置 ORM 参数 [CBeerta]
  • 添加 find_array 以获取记录作为关联数组 [Surt] - 解决 问题 #17
  • 修复在原始 WHERE 语句等中使用 ?% 供应的 _log_query 中的错误 - 解决 问题 #57 [ridgerunner]

1.1.1 - 发布于 2011-01-30

  • 修复引号中列通配符的错误。 j4mie/paris#12
  • 小的文档改进

1.1.0 - 发布于 2011-01-24

  • 添加 is_dirty 方法
  • 添加基本的查询缓存
  • 添加 distinct 方法
  • 添加 group_by 方法

1.0.0 - 发布于 2010-12-01

  • 初始发布