Php 一般规则-何时使用模型(Codeigniter)

Php 一般规则-何时使用模型(Codeigniter),php,model-view-controller,codeigniter,model,Php,Model View Controller,Codeigniter,Model,我只是好奇模型的经验法则是什么。通常,我只在需要为对象添加/编辑或更新数据库条目的情况下使用它们 然而,我现在正在构建一个应用程序,它有一个“配置”表,其中包含各种数据,例如上次更新的数据,它将控制应用程序中某些功能的显示时间。在本例中,我主要需要从config表中检索数据。是否值得将这些配置方法放在模型中 我很想听听更有经验的程序员是如何在CI示例伪方法中使用MVC方法的(例如,与模型和控制器中使用的相同对象相关的方法)这将非常有帮助。您将M与V&C分开的原因与您将CSS与HTML分开的原因相

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

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


我很想听听更有经验的程序员是如何在CI示例伪方法中使用MVC方法的(例如,与模型和控制器中使用的相同对象相关的方法)这将非常有帮助。

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

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

“值得将这些配置方法放在模型中吗?”

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

通过使用模型,您可以对接口而不是实现进行编码

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

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