featherbb / db-layer
基于Idiorm的FeatherBB数据库层
1.5.2
2016-02-08 15:30 UTC
Requires
- php: >=5.2.0
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发布
- 支持多个OR条件 [lrlopez] - 问题#201
where_id_in()用于通过主键选择多个记录 [lrlopez] - 问题#202- 添加复合主键支持 [lrlopez] - 问题 #171
- 查询中添加 RAW JOIN 源 [moiseevigor] - 问题 #163
- offsetExists() 对于 null 值应返回 true,解决 #181 [cainmi] - 问题 #214
- 自定义缓存回调函数 [peter-mw] - 问题 #216
- 更新/删除时限制 null 主键,解决 #203 [cainmi] - 问题 #205
- 确保参数按类型正确处理 [charsleysa] & [SneakyBobito] - 问题 #206 & 问题 #208
- 将聚合函数上的类型转换减少,允许字符 [herroffizier] - 问题 #150
- 防止无效的方法调用触发无限递归 [michaelward82] - 问题 #152
- 添加查询日志的时间 - 向外部日志记录器回调函数添加查询时间参数 [AgelxNash] - 问题 #180
- 更改数据库数组访问以确保始终正确设置 [falmp] - 问题 #159
- 允许取消设置数据库 (
ORM::set_db(null)) 以使测试再次工作 [borrel] - 问题 #160 - 纠正 问题 #176:在构建选择之前确保数据库设置 [kendru] - 问题 #197
- 将 HHVM 添加到 travis-ci 构建矩阵 [ptarjan] - 问题 #168
- 改进 WHERE 语句优先级文档 [thomasahle] - 问题 #190
- 改进测试检查 [charsleysa] - 问题 #173
1.4.1 - 发布日期 2013-12-12
修复更新以删除损坏的拉取请求 - 可能会对利用了 1.4.0 中合并的 "find_many() 现在返回一个关联数组,数据库主键作为数组键" 的更改的 1.4.0 用户产生后果。
1.4.0 - 发布于 2013-09-05
find_many()现在返回一个关联数组,数据库主键作为数组键 [Surt] - 问题 #133- 调用
set()和set_expr()返回$this,允许它们进行链式调用 [Surt] - 为 Idiorm 添加符合 PSR-1 的 camelCase 方法调用(需要 PHP 5.3+) [crhayes] - 问题 #108
- 添加静态方法
get_config()以访问当前配置 [javierd] - 问题 #141 - 添加日志回调功能 [lalop] - 问题 #130
- 添加对 MS SQL
TOP限制样式的支持(自动用于 PDO 驱动程序:sqlsrv、dblib 和 mssql) [numkem] - 问题 #116 - 在
WHERE子句中使用表别名 [vicvicvic] - 问题 #140 - 调用聚合函数时忽略结果列 [tassoevan] - 问题 #120
- 改进文档 [bruston] - 问题 #111
- 改进
get_db()的 PHPDoc [mailopl] - 问题 #106 - 改进文档 [sjparsons] - 问题 #103
- 使 tests/bootstrap.php 与 HHVM 兼容 [JoelMarcey] - 问题 #143
- 修复 docblock [ulrikjohansson] - 问题 #147
- 修复查询文档中错误的变量名称 [fridde] - 问题 #146
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的支持,包括使用
ROWS和TO结果集限制和标识符引用 [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_many和select_many_expr- 关闭问题 #49 和 #69 - 添加对
MIN、AVG、MAX和SUM的支持 - 关闭 问题 #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
- 初始版本