我正在寻找 PHP 的查询构建引擎(不是ORM!),它将满足下面指定的一些标准。不幸的是,在研究了 Doctrine、Propel、Adodb、Zend_Db 等之后,我找不到任何真正符合配置文件的东西——它们要么太抽象(我不需要 ORM 级别的抽象),要么不支持足够的特性. 我需要的是一个库,它允许我以编程方式构建 SQL 查询——我什至不需要它来运行它,尽管那也可以。
我真的很想避免重新发明轮子,所以如果您知道符合个人资料的内容,请提出来。如果您认为上面提到的其中一个适合(我错过了),请也告诉我。
必须有(如果图书馆没有,它对我没用):
- 支持 PHP 5.2(不幸的是,命名空间库暂时不能使用)
- 支持程序化查询生成,包括选择表达式、排序依据、限制、分组依据、拥有、联合、外连接等。
- 支持Mysql、Oracle oci8、MSSQL、DB2、Postrges
- 支持构建命名参数化查询和准备好的语句
- 支持随时动态添加条件/加入
- 支持日期时间等数据类型 - 例如,正确格式化传入/传出数据,在需要时使用正确的比较函数等(当然还有正确的引用)。我们知道代码中所有字段的类型,因此库应该允许我们告诉它每个字段是什么。
- 独立(易于使用,无需大量其他支持类)
- 易于扩展且许可允许以类似 BSD 的条款进行扩展
- 干净的 PHP 5 代码(没有 PHP 4 object-by-ref cruft 等)
很高兴(我们可以在“必须拥有”的基础上实现它,但如果它已经完成会更快乐)
- 支持实例化参数化查询(全部和部分) - 即在构建查询支持后为其提供部分参数并生成替换这些参数的新查询
- 支持合并两个查询(即将一个查询中的条件和表添加到另一个查询中)
- 支持查询注释(包括参数化它们)
奖金(这真的会让我们开心,但我们现在可以没有它)
- 支持序列化
- 支持缓存
那么,有人知道这样的图书馆吗?