代码之家  ›  专栏  ›  技术社区  ›  Dan Sosedoff

有没有类似于Ruby的DataMapper的PHP ORM?

  •  2
  • Dan Sosedoff  · 技术社区  · 16 年前

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

    6 回复  |  直到 14 年前
        1
  •  2
  •   Kieran Hall    16 年前

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

        2
  •  1
  •   Vance Lucas    16 年前

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

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

        3
  •  0
  •   bartnelis bartnelis    16 年前
        4
  •  0
  •   Community Mohan Dere    8 年前

    我建议你看看 this question 寻求建议。

    如果您正在寻找一种实现数据映射器范式而不是特定活动记录的ORM,那么我强烈建议您看看 GacelaPHP .

    Gacela的特点:

    • 数据映射器
    • 外键映射
    • 关联映射
    • 依赖映射
    • 混凝土表继承
    • 查询对象
    • 元数据映射
    • 懒惰(&A);快速加载
    • 完全支持Memcache

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

        5
  •  0
  •   BIOHAZARD    11 年前

    有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();

    事情会进展顺利的。

    我只是通过扩展这样的缓存来为特定环境开发自定义缓存引擎。

        6
  •  -1
  •   jedt    16 年前

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

    推荐文章