featherbb/db-layer

基于Idiorm的FeatherBB数据库层

1.5.2 2016-02-08 15:30 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:53:02 UTC


README

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

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

在PHP 5.2.0+上测试 - 可能适用于更早的版本,只要有PDO和正确的数据库驱动程序。

BSD许可证下发布。

功能

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

文档

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

构建文档

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

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;
}

变更日志

1.5.2 - 2015-??-??发布

  • 添加order_by_many方法 [adaur]
  • 更新where_any_is以支持IS NULL和IS NOT NULL [adaur]
  • 为连接方法添加不转义选项 [adaur]
  • 修复自动递增复合键插入 [lrlopez]
  • 添加find_one_col方法 [adaur]
  • 添加update_many方法 [adaur]
  • 添加update_many_expr方法 [adaur]
  • 允许在order_by方法中指定方向 [adaur]

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 [标签]
  • 添加get_last_statement() - 关闭问题#84 [标签]
  • 添加HAVING子句功能 - 关闭问题#50
  • 添加is_new方法 - 关闭问题#85
  • 将模型实例添加对ArrayAccess的支持,允许通过$model['字段']$model->字段访问属性 - 问题#51
  • 为模型集合添加结果集对象,支持方法链以一次过滤或应用多个结果的操作 - 问题#51#22
  • 添加对Firebird的支持,包括使用ROWSTO结果集限制和标识符引用 [mapner] - 问题#98
  • 修复使用RETURNING在PostgreSQL中获取最后插入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

  • 修复输入参数部分索引、部分关联的问题

1.2.1 - 发布日期2012-11-15

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

1.2.0 - 发布日期2012-11-14

  • 设置composer以通过packagist安装(j4mie/idiorm)
  • 添加order_by_expr方法 [sandermarechal]
  • 添加对不带参数的原始查询的支持 [sandermarechal]
  • 添加通过将关联数组传递给set方法一次设置多个属性的支持 [sandermarechal]
  • 允许将关联数组传递给configure方法 [jordanlev]
  • 允许空巴黎模型保存的补丁 ([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

  • 修复引用列通配符的 bug。 j4mie/paris#12
  • 小的文档改进

1.1.0 - 发布日期 2011-01-24

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

1.0.0 - 发布日期 2010-12-01

  • 初始版本