【问题标题】:General rule - when to use a model (Codeigniter)一般规则 - 何时使用模型 (Codeigniter)
【发布时间】:2011-02-09 22:56:24
【问题描述】:

我只是好奇模型的经验法则是什么。通常,我只在需要为对象添加/编辑或更新数据库条目的情况下使用它们。

但是,我目前正在构建一个应用程序,它有一个“配置”表,其中包含各种数据,例如上次更新,它将控制应用程序中的某些功能何时显示。在这种情况下,我主要需要从配置表中检索数据。是否值得将这些配置方法放入模型中?

我很想听听更有经验的编码人员如何处理 CI 中的 MVC 方法 - 示例伪方法(例如,与您在模型和控制器中使用的同一对象相关的方法)将是最有帮助的。

【问题讨论】:

    标签: php model-view-controller codeigniter model


    【解决方案1】:

    您将 M 与 V&C 分开的原因与您将 CSS 与 HTML 分开的许多原因相同 - 抽象、易于重用以及更轻、更易读的代码。

    另请注意,对于其他 MVC 平台,您将别无选择。仅仅因为您可以忽略方法(在 CI 中)并不意味着您应该这样做。

    【讨论】:

      【解决方案2】:

      “是否值得将这些配置方法放入模型中?”

      是的,当然,如果只是为了防止您在每个处理您的配置设置表的控制器中编写相同的 getter 和 setter。编写一次 getter 和 setter(最好在 MY_Model 中以通用方式编写)并在模型中编写一次复杂查询,然后根据需要在尽可能多的库、控制器或视图中调用它们。

      通过使用模型,您可以编写接口而不是实现。

      这意味着将模型从控制器中抽象出来是有好处的,因为控制器可以不知道数据的存储方式。只要模型方法始终以控制器期望的格式提供结果,您就可以决定将数据从数据库切换到 xml 到 ini 文件。简而言之,当您切换数据源时,您只需要更新模型的内部方法,而不需要更新控制器。

      最后,我相信 MVC 规则允许视图直接从模型请求数据。为此,您可以构建 CodeIgniter 帮助器,以在使用模型检索配置设置的视图中使用,其工作方式与本机 config_item() 通用函数的工作方式大致相同。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-13
        • 1970-01-01
        相关资源
        最近更新 更多