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

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


当前回答

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

其他回答

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

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

NotORM

include "NotORM.php";
 $pdo = new PDO("mysql:dbname=software");
 $db = new NotORM($pdo);
 $applications = $db->application()
->select("id, title")
->where("web LIKE ?", "http://%")
->order("title")
->limit(10)
;
foreach ($applications as $id => $application) {
echo "$application[title]\n";
}

试试PHP ADOdb吧。

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

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

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

一个非常好的简单ORM是MyActiveRecord。MyActiveRecord文档。我经常使用它,可以说它非常简单,经过了很好的测试。