Zend视图帮助程序中的数据库连接


Database Connection in Zend View Helper

在Zend View Helper中使用数据库映射程序是一种好的做法吗?因为在我的情况下,这个助手正在为我制作一个<div>的盒子,它不断实时更改,并将显示在我的应用程序中的所有视图中。我不可能给这个对象从控制器中的数据库加载它,并每次将其分配给视图。

如果有人能告诉我们在使用zend视图助手时要遵循的良好编程实践,这将非常有帮助,比如:

  • 如果可以通过$this->view->variable = ... ;在视图帮助程序中为视图指定内容
  • 如果可以在视图辅助对象中创建和使用模型
  • 如果可以在View Helper中使用Zend_View可用的方法,如执行$this->view->baseUrl('...');

您的第二个和第三个要点对我来说似乎是正确的,只要您不从视图中对模型进行任何逻辑操作。模型和视图之间的链接必须是只读的。

关于第一点,您不需要为视图分配任何内容,您的视图助手应该将HTML输出直接return到视图。

关于第一个问题,您可以创建专门用于此任务的视图帮助程序,这样您就可以将其用作视图帮助程序和映射程序之间的简单代理。一个视图助手将允许您访问任何映射器,其他视图助手可以使用此视图助手来获取映射器。

让我们看看Trygve Reenskaug对MVC的看法:

型号

模型代表知识。模型可以是单个对象(相当乏味),或者它可能是对象的某种结构。

模型和它的一方面是部分,以及由另一方面,模型的所有者。

视图

视图是其模型的(视觉)表示。它会通常高亮显示模型的某些属性并抑制其他。因此,它起到了演示过滤器的作用。

视图附着到其模型(或模型零件)并获取数据通过提问从模型中进行演示所必需的。它还可以通过发送适当的消息来更新模型。所有这些问题和信息必须包含在模型的术语中因此,视图必须知道它所代表的模型。

控制器

控制器是用户和系统之间的链接。它提供用户通过安排相关视图来进行输入他们自己在屏幕上的适当位置。它为通过向用户提供菜单或其他给予方式的用户输出命令和数据。控制器接收这样的用户输出,将其转换为适当的消息并传递这些消息到一个或多个视图。