【问题标题】:Should I pass objects or normal data into views?我应该将对象或普通数据传递到视图中吗?
【发布时间】:2011-12-15 03:48:51
【问题描述】:

我正在构建一个类似于 Facebook 的时间线...包含不同类型的帖子,每个帖子都涉及各种数据,但仍然高度模板化。

我想知道是否最好将大型多维数组传递到每个子视图(时间轴上的每个项目),或者是否最好简单地传递对象(例如“用户”对象),以便子视图view 可以使用对象的功能吗?

一个比另一个更灵活吗?有人知道 Facebook 是如何处理这个问题的吗?

【问题讨论】:

  • “比另一个更灵活” - 数组是可迭代的和可数的。如果您不需要该功能,那么您很可能应该使用对象。
  • @dqhendricks 对象可以很容易地变得可迭代和可数。

标签: php model-view-controller oop


【解决方案1】:

在我看来,数组是个坏主意。许多框架将对象传递给视图,但也有一些框架将对象放入视图数组(例如 cakePHP)。

我使用 cake 并且使用视图中的“排列”数据是一场噩梦

$data['blah']['bleh']['bluh']['puh']['some_other_long_array_key_for_difference']['and']['so']['on']['fuuuuuu']

使用对象,它们是为了简化我们的生活;]

【讨论】:

    【解决方案2】:

    我无法告诉你 facebook 是如何处理这个问题的,但通常对象通常更灵活。

    例如,您可以使用 __toString function 来回显它们。如果所有传递到视图中的对象都被自动修饰,这将非常灵活。

    如果您使用ArrayAccess interface,它们的行为可以像数组一样。

    通常:对象比静态数组更具动态性,因此对象更灵活。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-26
      • 1970-01-01
      • 2011-11-24
      • 2014-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-10
      相关资源
      最近更新 更多