【问题标题】:Is there any PHP ORM similar to Ruby's DataMapper?有没有类似于 Ruby 的 DataMapper 的 PHP ORM?
【发布时间】:2009-07-02 02:43:24
【问题描述】:

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

【问题讨论】:

标签: php orm datamapper


【解决方案1】:

我相信Doctrine 的实现方式类似。

【讨论】:

  • 同意,Doctrine 是 PHP 最复杂的 ORM 工具。
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

      我建议您查看this question 以获取建议。

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

      Gacela 特点:

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

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

      【讨论】:

        【解决方案5】:

        有 db.php orm (http://dbphp.net) 它可以执行您列出的所有操作,但不支持 memcache,而是使用 apc 用户缓存功能,并且还可以通过扩展 \db\cache 基本类来覆盖缓存引擎类,例如那(原来这是db.php使用apcu的长缓存类):

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

        【讨论】:

          【解决方案6】:

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

          【讨论】:

            猜你喜欢
            • 2014-10-09
            • 2012-07-19
            • 1970-01-01
            • 2016-03-22
            • 2019-06-04
            • 2017-03-20
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多