PHP有好的对象关系映射库吗?

我知道PDO/ADO,但它们似乎只提供了数据库供应商之间差异的抽象,而不是域模型和关系模型之间的实际映射。我正在寻找一个PHP库,功能类似于Hibernate为Java和NHibernate为。net所做的方式。


当前回答

看看Kohana的LEAP ORM。它可以与一系列数据库一起工作,包括DB2、Drizzle、Firebird、MariaDB、SQL Server、MySQL、Oracle、PostgreSQL和SQLite。通过一个简单的自动加载函数,它可以与几乎任何PHP框架一起工作。源代码在GitHub上https://github.com/spadefoot/kohana-orm-leap。你可以在线查看LEAP的教程。

ORM库使用非整数主键和复合键。连接是通过数据库连接池管理的,它与原始SQL查询一起工作。ORM甚至有一个查询构建器,使构建SQL语句超级简单。

其他回答

好的只有两个:Doctrine和Propel。我们喜欢Doctrine,它和Symfony配合得很好。然而,如果你正在寻找数据库支持之外的主要,你将不得不编写自己的代码。

我的朋友Kien和我对他在PHP 5.3之前编写的ORM的早期版本进行了改进。我们实际上已经将Ruby on Rails的活动记录移植到PHP。它仍然缺少一些我们想要的关键特性,比如事务,复合主键支持,更多的适配器(目前只有MySQL和SQLite 3可用)。但是,我们已经非常接近完成这些工作了。你可以看看带有PHP 5.3的PHP ActiveRecord。

我刚从Kohana开始,它似乎最接近Ruby on Rails,而不像Propel那样调用多个配置文件的复杂性。

如果您正在寻找ORM(如Hibernate),则应该查看PMO。

它可以很容易地集成到SOA体系结构中(只需要开发一个webservice类)。

看看Kohana的LEAP ORM。它可以与一系列数据库一起工作,包括DB2、Drizzle、Firebird、MariaDB、SQL Server、MySQL、Oracle、PostgreSQL和SQLite。通过一个简单的自动加载函数,它可以与几乎任何PHP框架一起工作。源代码在GitHub上https://github.com/spadefoot/kohana-orm-leap。你可以在线查看LEAP的教程。

ORM库使用非整数主键和复合键。连接是通过数据库连接池管理的,它与原始SQL查询一起工作。ORM甚至有一个查询构建器,使构建SQL语句超级简单。