【发布时间】:2015-05-02 21:23:13
【问题描述】:
在我以前拥有全 ajax 网络应用程序的公司中,使用了一个从头开始的框架。刷新页面部分的方式是您使用字符串调用控制器,控制器将加载一个或多个视图文件。视图文件几乎总是会调用模型中的一个或多个类。这是我到达那里时的样子。
我现在正在与一家新公司合作开发新系统并寻找候选框架。一个 30 分钟的 codeigniter 教程展示了控制器调用模型,以及模型加载视图。
这与我的经验相反,所以我想问一下哪种策略更常见。在我看来,视图是一个“外壳”或结构似乎更合理,但仅限于需要模型来获取业务规则。
我不确定我是否应该在这里分享一个链接,我不是想推广 codeigniter,但该教程位于 https://www.youtube.com/watch?v=47VOtKiw9AQ 大约 10:00。谢谢
【问题讨论】:
-
上次我检查该视图用于显示信息并可能收集一些信息(将传递给控制器)。但是视图不应该直接调用模型或控制器。分开你的责任。
-
同意@AndreiP。控制器是“核心部件”。它必须是调用模型并加载视图的那个。模型应该调用的唯一东西是 db。 View 从不调用任何东西。 See what the doc say
-
对于 CodeIgniter,最常见的标准是,控制器调用模型来检索数据,然后将其传递给视图。视图和模型之间不应有任何直接联系。
-
我想你搞糊涂了。此类在不是您的模型中称为
Site。在这种情况下,Site是您的控制器。控制器正在加载视图。如果需要任何数据,控制器将首先从模型中收集该数据,并将其加载到视图中。也许你感到困惑的原因是因为你的旧公司的自定义框架被设计为更多地使用 ajax,这导致你认为“视图是第一位的”。 AJAX 调用实际上来自视图,但在这种情况下,它会触发控制器,然后控制器会收集数据并将其返回给视图。 -
@tereško,感谢您的分析。我理解你的观点。 CI 确实缺少许多组件,从高级开发人员的角度来看,我会同意.. 但是,我确实相信它是一个很好的框架,与过程编码相比,它提供了对 MVC 的更深入理解的良好过渡.您推荐哪些 PHP 框架以及为什么?
标签: php codeigniter model-view-controller