我想使用ORM,但不幸的是,我们的数据库(Oracle)没有稳定的PDO。PHP页面声明PDO_OCI扩展是"实验性的",并警告不要使用它。
似乎Doctrine和Propel都需要PDO。其他Oracle/PHP商店在生产中使用什么ORM ?
Doctrine 2支持OCI8开箱即用。
对于Doctrine 1.2,你必须使用OCI8扩展(Oracle唯一积极支持的扩展)实现你自己的连接类。很有可能,你会在GitHub上找到一个自定义类,或者通过谷歌搜索它。
至于Propel,在Propel Newgroups中有一个条目要求使用它:
- https://groups.google.com/group/propel-users/browse_thread/thread/9977c9556beaf1ac
遗憾的是,Propel需要PDO和PDOStatement作为参数在整个API中,最好的选择列表是扩展PropelPDO和并使用oci8重新实现所需的方法。
和
理论上,可以使用Propel 1.2。X,因为它使用oci8而不是pdo_oci。
PDO_OCI扩展在技术上是"实验性的",但是数以百万计(夸张地说)的人(包括我自己)每天都在生产系统上使用它,没有任何问题。它已经超过6年了,非常稳定。
OCI8呢?
顺便说一句,你必须区分与DBMS通信的驱动程序和使用该驱动程序的ORM。