2015-03-02 76 views
1

在我以前的公司有一个全AJAX Web应用程序,有一个从零开始的框架被使用。页面部分刷新的方式是用一个字符串调用控制器,控制器将加载一个或多个视图文件。视图文件几乎总是调用模型中的一个或多个类。这和我到达那里时一样。模型调用视图,或查看调用模型?

我现在正在与一家新公司合作开发一个新系统并寻找候选框架。关于codeigniter的30分钟教程显示控制器调用模型,模型加载视图。

这与我以前的经历相反,所以我想问一下哪种策略更常见。在我看来,这种观点似乎是一种“壳”或结构,但仅限于需要模型去遵守商业规则。

我不确定我是否应该在这里分享链接,我不是在尝试宣传codeigniter,但教程位于https://www.youtube.com/watch?v=47VOtKiw9AQ约10:00。谢谢

+3

我上次检查视图是用来显示信息并可能收集一些信息(要传递给控制器​​)​​。但是这个观点不应该直接调用模型或控制器。分开你的责任。 – 2015-03-02 13:43:42

+2

同意@AndreiP。控制器是“中心部分”。它必须是调用模型并加载视图的人。模型应该调用的唯一东西就是数据库。视图从不调用任何东西[看看文档说什么](http://www.codeigniter.com/userguide3/overview/mvc.html) – AdrienXL 2015-03-02 13:51:52

+0

对于CodeIgniter,最常见的标准是,控制器正在调用模型来检索数据,然后传递它以查看。视图和模型之间不应有直接的联系。 – 2015-03-02 13:52:20

回答

0

教程。有很多。

控制器调用模型并将数据传递给视图。那是标准答案。但是我现在倾向于 - 控制器分配特定视图,然后调用模板,传递$ data。

然后在模板中 - 调用模型为该模板创建导航栏,以及可选的页面显示模型。

否则 - 要么你有my_controller这一切经过,可能有页面显示,导航等

来电或你必须把页面显示细节,每一个控制器。我个人并不是my_controller设计模式的忠实粉丝,并且在复杂控制器中调用导航栏并不是最佳选择。

所以在这种情况下,可能会被视为一个视图 - 一个简单的模板文件 - 将调用模型。但在这种情况下,它不是一个真正的“视图”,因为它不直接显示任何东西 - 模板正在调用导航视图,页眉,页脚视图等等 - 然后实际的页面内容由控制器分配。

这也给你更多的便携性 - 当你需要改变关于页面显示或导航的细节时,你只需要去一个地方。

终于有很多的PHP框架和许多意见。经过漫长的休眠期之后,代言人框架正在积极开发之中。然而,如果你是从平方开始的,那么也要看Node,它有一些引人注目的特性,这取决于你的用例。