codeigniter最佳实践 - 多种模型

时间:2010-03-04 20:37:43

标签: model-view-controller codeigniter multiple-models

关于MVC开发最佳实践的一个简单问题。

假设我有两个控制器(cont1,cont2),每个控制器使用一个单独的模型,model1和amp; MODEL2。

所有文件都很复杂,模型包含几十种方法。

说,我完成了第一个控制器的开发,我正处于第二个控制器的工作中。我需要在model2中创建一个方法,它与model1中的方法完全相同。例如,这只是一种很小的方法,可以获得某种类别的列表。

什么是最好的工作方法 - 我应该复制方法并将其包含在我的model2中,还是应该从model1中检索它?

合理的做法是从model1获取它,但我不知道这是否会影响执行时间,因为它必须加载两个模型..

我很感激一些反馈

感谢 ķ

3 个答案:

答案 0 :(得分:3)

加载第二个模型不会对执行时间产生明显影响。这可能是要走的路。

此外,每个模型都应该封装特定“对象”的数据逻辑。您可以将每个模型看作几乎像数据库表。所以你可能不想在两个不同的地方使用相同的方法 - 如果你这样做,你可能想考虑创建一个插件。

答案 1 :(得分:1)

也许你真正需要的是第三种模式。如果您的方法在许多/所有模型中使用,它实际上可能是一个独特的数据集,可以保证它自己的注意力。此外,您将无需加载多个“大型”模型,而是拥有1个大型和1个小型模型。

答案 2 :(得分:0)

我遇到了同样的情况。我所做的是在每个模型中加载codeigniter对象按引用。然后我可以将其他模型,库,帮助器甚至配置项加载到我的模型中。它有助于将模型代码保留在控制器之外,我认为这是最佳实践。始终保持干燥(不要重复自己)。