【问题标题】:how to separate data access layer in codeigniter如何在codeigniter中分离数据访问层
【发布时间】:2011-05-02 20:00:40
【问题描述】:

我曾经在模型本身中编写数据访问功能。现在我想将数据访问与业务逻辑分开。我正在使用 codeigniter 作为框架。 似乎一种方法是使用 ORM,但我猜它会降低性能。

是否有任何一般的最佳做法?

【问题讨论】:

    标签: php codeigniter data-access-layer


    【解决方案1】:

    看看POEAA的数据源架构模式:

    CodeIgniter 声称使用 ActiveRecord,but it doesnt。它更像是一个基本的QueryObject。要真正将 DAO 与域对象分开,您必须使用 DataMapper。根据您映射需求的复杂性,您可以自己构建一个或使用ORM。具有讽刺意味的是,PHP 世界中的大多数 ORM 都是基于 ActiveRecord,which is pretty ill-suited for ORM。 Doctrine 2 是我所知道的唯一使用 DataMapper 方法的。

    ORM 总是会带来性能损失(而且可能很严重)。但是,您不应该仅仅因为这个而排除 ORM。在高 impedance mismatch 场景中手工制作一个高效的 DataMapper 可能是乏味和困难的工作。同样,请参阅 POEAA 以获取常见对象关系模式的列表。

    似乎有一个DataMapper implementation for CodeIgniter with Overzealous DMZ。我从来没有使用过它,也不能说什么。它只是在快速谷歌后出现的,所以我想我在这里添加它。

    【讨论】:

      猜你喜欢
      • 2013-11-27
      • 2012-11-24
      • 1970-01-01
      • 1970-01-01
      • 2017-07-22
      • 2011-06-29
      • 2014-07-31
      • 2010-10-30
      • 1970-01-01
      相关资源
      最近更新 更多