|
1
5
|
|
|
2
2
View Helpers 通过封装对模型“获取数据”方法的调用来返回信息。这会让你远离 Passive View 许多其他PHPMVC框架所采用的模式。视图将直接传递到模型以获取数据。您担心的是,多次调用视图帮助程序将导致模型两次获取数据。这是一个似乎很容易避免的潜在性能问题。
模型实现 应该修复。这不是janky编码风格应该解决的问题:)
它仍然有点笨拙,但你的视图文件(顶部只有一行)的一致性会减少气味。也就是说,缓存是实现这一点的“正确”方式。避免这种情况只是用一种气味换另一种气味。当你定义一个视图变量时(直接在视图中或通过在控制器中设置它),你已经在使用缓存,只是以一种随意的方式。 |
|
|
3
2
简短的回答:依我之见,是的,把它放在控制器里。
1) 将变量传递到视图中的控制器是更典型的MVC。
|
|
|
4
2
另一方面,我喜欢这种缓存的想法。..事件,如果你认为它太复杂/矫枉过正。
这
如果你这样称呼:
你会得到这个:
这难道没有帮助吗?我猜,在你的情况下
另外:是的,您仍然多次调用该方法。..但这比做查询要好。..这样,视图和控制器都不必关心任何类型的“缓存”:这不是他们的工作。 而且:我已经使用这种技术很多年了,没有任何问题(只要我只以这种方式存储小对象,而不是太多);而且我不是唯一一个使用这个的人;例如,Drupal也使用了这一点。 |
|
|
5
1
$这个->视图->some变量=1; ....
|
|
|
6
1
|
|
|
7
1
视图可以包含任意多的显示逻辑。 在我自己的工作中,我倾向于在控制器中分配所有变量,除非我使用视图助手来呈现导航、广告等。视图助手实际上是用于您将在网站的许多部分重复使用的东西。 当将控制器中的变量分配给视图时,如果我有一个记录集,我倾向于遍历该记录集并将它们推送到关联数组中。我没有将实际的记录集传递给视图,而是将这个数组传递给它。 这样做的原因是,我可以:
控制器示例:
|