【发布时间】:2011-07-18 13:30:13
【问题描述】:
我想使用 ORM,但不幸的是,我们的数据库 (Oracle) 没有稳定的 PDO。 PHP 页面声明 PDO_OCI 扩展是“EXPERIMENTAL”并警告不要使用它。
Doctrine 和 Propel 似乎都需要 PDO。其他 Oracle/PHP 商店在生产中为 ORM 使用什么?
【问题讨论】:
我想使用 ORM,但不幸的是,我们的数据库 (Oracle) 没有稳定的 PDO。 PHP 页面声明 PDO_OCI 扩展是“EXPERIMENTAL”并警告不要使用它。
Doctrine 和 Propel 似乎都需要 PDO。其他 Oracle/PHP 商店在生产中为 ORM 使用什么?
【问题讨论】:
Doctrine 2 supports OCI8 out of the box.
对于 Doctrine 1.2,您必须使用 OCI8 extension(Oracle 积极支持的唯一一个)implement your own connection class。您可能会在 GitHub 或 googling for it 找到一个自定义类。
至于Propel,在Propel Newgroups中有一个条目要求它:
不幸的是,Propel 需要 PDO 和 PDOStatement 作为参数 贯穿整个 API,因此最好的选择是扩展 PropelPDO 和 PDOStatement 并使用 oci8 重新实现所需的方法。
和
理论上,您可以使用 Propel 1.2.x,因为它使用 oci8 而不是 pdo_oci。
【讨论】:
PDO_OCI 扩展在技术上是“实验性的”,但无数人(包括我自己)每天都在生产系统上毫无问题地使用它。它已经超过 6 年了,而且相当稳定。
【讨论】:
OCI8怎么样?
顺便说一句,您必须区分与 DBMS 通信的驱动程序和使用该驱动程序的 ORM。
【讨论】: