【问题标题】:Why do MVCs tend to convert objects into arrays when passing them off to a view?为什么 MVC 在将对象传递给视图时倾向于将对象转换为数组?
【发布时间】:2025-12-29 07:25:16
【问题描述】:

为什么 MVC 在将对象传递给视图时倾向于将它们转换为数组?

只是好奇这是否有原因。

【问题讨论】:

  • 由于存在所有不同的“MVC”,我不确定您是否可以说“他们”“倾向于”做任何事情,请具体说明。
  • 实际上,在真正的 MVC 模式中,View 与 Model 进行通信。只是在 Web-PMVC 框架中存在部分数据推送。
  • @mario 这种区别是狡辩。 MVC 是 POEAA 中的一种web 模式。它最重要的方面是将模型与 UI 分离,这对于任何环境都是一样的,无论是 Smalltalk 还是 PHP。其他任何内容都是实现细节。
  • @Gordon。 Hardly. 未能理解变体的转置是导致不合理代码的秘诀。如果人们实现了浅层模型(= 只是数据库 API)和哑视图(= 静态页面输出而不是运行小部件),那么所谓的“控制器”必然是胖的。 MVP 和 MVVM 是这方面的更好指南(并且出于某种原因取代了 MVC)。
  • @mario 这与是 MVC、MVP 还是 XYZVC 无关。只是人们没有得到属于模型的内容与属于 V 和 C 的内容之间的根本区别。如果人们理解 V 和 C 是表示层,而 M 是其他所有内容,他们应该将它们分开,那么如何只要保持这种区别,他们就会进行交流。

标签: php model-view-controller view


【解决方案1】:

可能是因为您不应该能够从视图中更改对象。我想这只是与代码纯度和帮助用户遵循 MVC 模式有关。

【讨论】:

    【解决方案2】:

    如果数组,你的意思是集合,那么原因是因为不能保证你只想将一个对象传递给视图。

    当然,您可以有一个上下文对象,它确实将您的所有数据传递给视图,但框架宁愿提供一种不需要您聚合数据的机制,特别是因为它可能需要大量时间不同的形状。

    【讨论】: