2

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

上下文

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

迄今为止所了解的

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

问题

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

然而,一些模板引擎,如 Twig 或 Smarty 支持在视图中使用格式控制器的想法,可以接受过滤和格式化货币、日期等。

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

谢谢!

4

1 回答 1

1

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

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

于 2013-10-16T12:33:35.990 回答