我主要在 Ruby 和 Merb 中使用 DataMapper,所以我正在寻找类似于 DataMapper 的 PHP ORM。有什么好的吗?
6 回答
我相信Doctrine是以类似的方式实施的。
phpDataMapper项目是专门为类似于 Ruby 的 DataMapper 而创建的。如果你对这个项目感兴趣,请帮助我!我正在寻找更多了解 Ruby DataMapper 的人来帮助更快地扩展项目。
GitHub 项目页面: https ://github.com/vlucas/phpDataMapper/tree
Propel 是 php5 的 ORM,你也可以看看XPDO
有 db.php orm ( http://dbphp.net ) 它可以完成您列出的所有操作,但不支持 memcache,而是使用 apc 用户缓存功能,并且还可以通过扩展 \db\cache 基本类来覆盖缓存引擎类像那样(最初这是使用 apcu 的 db.php 的长缓存类):
class long extends cache
{
function store ($name, $value)
{
if (is_bool($value))
{
\apc_delete ($name);
}
else
{
\apc_store ($name, $value);
}
}
function fetch ($name)
{
return \apc_fetch ($name);
}
function clear ()
{
\apc_clear_cache ('user');
}
}
因此,如果您实现类mymemcache extends \db\cache
并在之后覆盖这三个方法,您可以像这样将缓存引擎附加到您的 orm:
$database->context->caches[\db\cache::long] = new mymemcache();
事情会顺利进行。
我只是通过像这样扩展 \db\cache 为特定环境开发了我的自定义缓存引擎。
我以前从未在 DataMapper 上工作过,但您可以查看 Cakephp 框架,它具有与 ROR 非常相似的 ORM。