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

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


当前回答

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

其他回答

在PHP 5.3发布之前,不要期望有一个好的ORM。这是PHP的面向对象限制。

试试红豆,它要求:

没有配置 没有数据库(一切都是动态创建的) 没有模型 等。

它甚至为您执行所有的锁定和事务,并在后台监视性能。(见鬼!它甚至做垃圾收集....)最棒的是……你不必写一首……代码行…天哪,ORM层救了我!

检查出口ORM。它比Propel和Doctrine更简单,它的工作原理类似于Hibernate,只是它有更多的PHP感觉。

看看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语句超级简单。

试试PHP ADOdb吧。

我不能说它是最好的,因为我没有用过其他的。但是它很快,它支持Memcached和缓存。

而且它比Zend Framework的DB/Select快多了。