gpt4 book ai didi

php - MVC : Model View Controller -- does the View call the Model?

转载 作者:可可西里 更新时间:2023-11-01 13:04:21 27 4
gpt4 key购买 nike

我已经阅读了一段时间有关 MVC 设计的内容,看起来正式的是 View 调用 Model 中的对象和方法,构建并输出一个 View 。

我认为这主要是错误的。

Controller 应该执行并检索/更新 Model 内的对象,选择合适的 View 并将信息传递给它以便它可以显示。只有粗略和基本的 PHP 变量/简单的 if 语句应该出现在 View 中。

如果 View 从 Model 中获取它需要显示的信息,那么 View 中肯定会有很多 PHP -- 完全违反了分离表示逻辑的要点。

最佳答案

与所有编程一样,我们需要务实。 View 应该只包含表示逻辑。该逻辑可以非常简单,也可以非常复杂。只要该逻辑只处理屏幕上显示的内容、打印在报告上的内容等。

The Controller should act and retrieve/update objects inside the Model, select an appropriate View and pass the information to it so it may display.

您传递的信息是什么?可能是模型的子集。您可以创建一个仅包含 View 应该知道的信息的新类,或者只传递模型并确保您只访问适当的数据。无论如何, View 应该可以自由查询这个传入的模型才能显示 View 。

争议点在于,从 View 角度来看,您是否应该能够绕过 Controller 直接更新模型。这就是务实的一面。我认为有些情况可以保证直接更新模型。特别是如果您可以使用数据绑定(bind)。您可以为模型的属性分配一个文本框,让更新自动发生。如果有很多简单的属性设置这种方法可以节省 Controller 中的一堆代码。 MVC 不是一成不变的规则集。它的指导方针是,如果使用得当,可以生成更好的代码,但如果使用得太严格,则会导致痛苦和折磨。

要务实!

关于php - MVC : Model View Controller -- does the View call the Model?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2621725/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com