PHP有好的对象关系映射库吗?
我知道PDO/ADO,但它们似乎只提供了数据库供应商之间差异的抽象,而不是域模型和关系模型之间的实际映射。我正在寻找一个PHP库,功能类似于Hibernate为Java和NHibernate为。net所做的方式。
PHP有好的对象关系映射库吗?
我知道PDO/ADO,但它们似乎只提供了数据库供应商之间差异的抽象,而不是域模型和关系模型之间的实际映射。我正在寻找一个PHP库,功能类似于Hibernate为Java和NHibernate为。net所做的方式。
当前回答
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";
}
其他回答
我的朋友Kien和我对他在PHP 5.3之前编写的ORM的早期版本进行了改进。我们实际上已经将Ruby on Rails的活动记录移植到PHP。它仍然缺少一些我们想要的关键特性,比如事务,复合主键支持,更多的适配器(目前只有MySQL和SQLite 3可用)。但是,我们已经非常接近完成这些工作了。你可以看看带有PHP 5.3的PHP ActiveRecord。
我们使用的另一个很棒的开源PHP ORM是PHPSmartDb。它是稳定的,使您的代码更加安全和干净。其中的数据库功能是我在PHP 5.3中使用过的最简单的功能。
看看《教义》。
Doctrine 1.2实现了活动记录。Doctrine 2+是一个DataMapper ORM。
还有,看看Xyster。它基于Data Mapper模式。
另外,看看DataMapper和活动记录。
看看http://code.google.com/p/lworm/。它是一个非常简单但功能强大的轻量级PHP ORM系统。如果您愿意,还可以轻松地扩展它。
教条主义可能是你最好的选择。在Doctrine之前,DB_DataObject本质上是唯一一个开源的实用程序。