2

我主要在 Ruby 和 Merb 中使用 DataMapper,所以我正在寻找类似于 DataMapper 的 PHP ORM。有什么好的吗?

4

6 回答 6

2

我相信Doctrine是以类似的方式实施的。

于 2009-07-02T08:43:22.717 回答
1

phpDataMapper项目是专门为类似于 Ruby 的 DataMapper 而创建的。如果你对这个项目感兴趣,请帮助我!我正在寻找更多了解 Ruby DataMapper 的人来帮助更快地扩展项目。

GitHub 项目页面: https ://github.com/vlucas/phpDataMapper/tree

于 2009-08-20T21:58:16.900 回答
0

Propel 是 php5 的 ORM,你也可以看看XPDO

于 2009-07-02T08:53:35.410 回答
0

我建议你看看这个问题的建议。

如果您正在寻找一个实现 Data Mapper 范例而不是 Active Record 的 ORM,那么我强烈建议您看看GacelaPHP

加塞拉特点:

  • 数据映射器
  • 外键映射
  • 关联映射
  • 依赖映射
  • 具体表继承
  • 查询对象
  • 元数据映射
  • 懒惰和急切的加载
  • 完整的内存缓存支持

在开发任何远程复杂的东西时,其他 ORM 解决方案过于臃肿或有繁重的限制。Kacela 通过实现数据映射器模式解决了活动记录方法的局限性,同时通过使用 PDO 与数据库和内存缓存的所有交互将膨胀降至最低。

于 2011-07-16T12:56:51.997 回答
0

有 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 为特定环境开发了我的自定义缓存引擎。

于 2015-04-06T15:13:27.993 回答
-1

我以前从未在 DataMapper 上工作过,但您可以查看 Cakephp 框架,它具有与 ROR 非常相似的 ORM。

于 2009-07-02T02:54:50.247 回答