我主要使用Ruby和Merb中的DataMapper,因此我正在寻找类似于DataMapper的PHP ORM。有什么好的吗?
答案 0 :(得分:2)
我相信Doctrine以类似的方式实施。
答案 1 :(得分:1)
phpDataMapper项目是专门创建的,就像Ruby的DataMapper一样。如果您对该项目感兴趣,请帮帮我!我正在寻找更多了解Ruby DataMapper的人来帮助他们更快地扩展项目。
GitHub项目页面: https://github.com/vlucas/phpDataMapper/tree
答案 2 :(得分:0)
Propel是php5的ORM,您也可以查看XPDO
答案 3 :(得分:0)
我建议您查看this question以获取建议。
如果您正在寻找一个实现Data Mapper范例而不是Active Record的ORM,那么我强烈建议您查看GacelaPHP。
Gacela特点:
在开发任何远程复杂的东西时,其他ORM解决方案过于膨胀或存在繁重的限制。 Kacela通过实现数据映射器模式解决了活动记录方法的局限性,同时通过将PDO用于与DB和内存缓存的所有交互来保持膨胀最小化。
答案 4 :(得分:0)
有db.php orm(http://dbphp.net)它会执行您列出的所有内容但不支持memcache,而是使用apc用户缓存功能,并且还可以通过扩展\ db \ cache basic来覆盖缓存引擎类像那样的类(原来这是使用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来为特定环境开发我的自定义缓存引擎。
答案 5 :(得分:-1)
我之前从未使用过DataMapper,但你可以查看CakePHp框架,它与ROR非常相似。