什么逻辑应该包含MVC设计的视图?

时间:2013-10-16 12:23:03

标签: php model-view-controller view

我已经讨论了一段时间了,我想知道这里的人们的广泛意见和理由。

上下文

这个问题是关于PHP中MVC模型中视图的理论正确范围。

迄今为止理解

在MVC设计中,View部分应负责绘制页面或部分页面。这意味着View将使用PHP绘制静态内容和参数。在某些情况下,这里需要一些流量控制逻辑 - foreachs,fors。

问题

我认为MVC的View端应该非常愚蠢 - 作为生成这些参数的库处理的参数的过滤器和格式......

然而,像Twig或Smarty这样的模板引擎支持在View中使用格式控制器的想法,可以过滤和格式化货币,日期等。

那么视图的“智能”的限制在哪里? 如果过滤器和格式是View可接受的,那么条件格式呢?例如,如果用户可以设置日期格式,那么View必须知道此设置 - 如果我们允许这样做,我们可以扩展对货币,语言等的查看知识......?

谢谢!

1 个答案:

答案 0 :(得分:1)

将MVC视为一套指导原则,而不是严格的规则。您可以通过在模型和控制器中使用演示文稿部件,在视图中使用数据库通信等来制作最糟糕的应用程序。没有什么可以阻止您,对吧? (评论:当然,我绝不建议你应该这样做!,只是说应用程序可能仍然有用,即使它以最糟糕的方式编写)

所以我认为视图的智能限制最适合您的应用 - 对于一个应用,具有某些过滤器非常好(如果应用真的使用它们),同时另一个可能被认为是不好的做法。只要您知道每个MVC组件中发生了什么,您就可以根据您正在构建的应用程序的需要,自由地微调每个MVC组件的边界。没有一个正确的用法。