MVC和codeigniter中的正确架构是什么?

时间:2013-03-27 17:02:03

标签: php codeigniter architecture

我知道这类问题被问了很多,我自己曾经问过这个问题,但是没有答案似乎适合我的问题。我认为通过做一个“一般”的方式而不是一个特定方式,它对我自己和其他人会更有帮助。

像'从视图中加载控制器'这样的问题'从控制器加载控制器''从另一个视图加载带控制器的视图'经常被问到,到目前为止我得出的结论是,这不是没有办法要做到这一点(我自己找到了解决方案),这只是一个糟糕的架构问题。

所以,我的问题是,什么是好的架构?

如果要加载不同的视图并帮助组织,模板方法很有用。那很棒。我认为问题是:

-model1,controller1,view1

-model2,controller2,view2

-view3

-view4

您可以在视图1或2中找到加载视图3和4的方法。但是当您想加载view2 innside view1时会发生什么?那里没有办法包含controller2。

我不是要求一种包含它的方法,我问的是正确的做法是什么?我已经看到了“重用模型”的答案。但我不太明白这意味着什么。

我认为回答这个问题并不能解决我到目前为止所遇到的问题(因为项目是如此先进,我必须重做),但它将帮助我从未开始的项目中做到这一点。

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

视图的最佳实践之一是设计它,例如三个文件夹

  • 常见
  • content
  • 布局

常见:会有很多html片段,比如menues,sidebars,header,footer等等,甚至还有一些较小的部分,比如评论框或其他什么

内容类似于常见但更多与内容相关的视图,这些视图在大多数常见网站中都很有用

布局:此文件夹将包含您网站的可能布局,包含公共视图和内容视图

这对于更多了解MVC的视图检查此article

答案 1 :(得分:0)

我喜欢保持简单......

模型与我的数据库或其他数据源交互。这就是他们所做的一切。他们将数据作为输入并返回数据。

控制器充当请求端点并控制应用程序流/条件。他们从模型中获取正确的数据,验证数据(来自用户),做出有关做什么的决定。然后,他们使用正确的数据加载右视图。

视图只是HTML模板,可以显示控制器交给他们的任何数据。我的视图中唯一存在的“处理”是迭代数组以生成可重复元素,格式化和条件显示元素/数据。

我能想到的唯一一个真实实例,其中一个视图在其中加载另一个视图,就像导航元素或其他元素一样,这些元素是在多个(但不是全部)页面上重复的常见HTML。