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

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


当前回答

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

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

其他回答

我在miniOrm工作。只是一个迷你ORM,尽可能简单地使用对象模型和MySQL抽象层。希望对大家有所帮助:http://jelnivo.fr/miniOrm/

如果你喜欢冒险,可以试试Repose。与Outlet一样,它也模仿Hibernate。

它仍然处于开发的早期阶段,但到目前为止,域模型的唯一限制是类没有标记为final,属性没有标记为private。一旦我进入了PHP >= 5.3的领域,我将尝试实现对私有属性的支持。

我一直在培养波克。dbObject在我自己。(一个简单的PHP ORM和活动记录实现) 主要原因是我发现大多数orm太重了。

波克的主要思想。dbObejct是轻量级的,易于设置。没有一堆XML文件,只有构造函数中的一个函数调用来绑定它,以及一个addRelation或addCustomRelation来定义与另一个dbObject的关系。

看一下:Pork.dbObject

试试PHP ADOdb吧。

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

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

让我们尝试一下dORM,它是PHP 5的对象关系映射器。它支持所有类型的关系(1对1)、(1对多)、(多对多)和数据类型。它完全不引人注目:不需要代码生成或类扩展。在我看来,它比任何ORM都要优越,包括Doctrine和Propel。然而,它仍处于测试阶段,并可能在未来几个月发生重大变化。http://www.getdorm.com

它的学习曲线也非常小。你将使用的三个主要方法是:

<?php 
$object = $dorm->getClassName('id_here');
$dorm->save($object);
$dorm->delete($object);