4

在 Zend View Helper 中使用数据库映射器是一种好习惯吗?<div>因为在我的情况下,这个助手让我成为一个实时变化的盒子,并且将显示在我的应用程序中的所有视图中。我不可能让该对象从控制器中的数据库中加载它并将其分配给每次查看。

如果有人可以告诉在使用 zend 视图助手时遵循的良好编程实践,那将非常有帮助,例如:

  • 如果可以通过以下方式将某些内容分配给 View Helpers 中的视图$this->view->variable = ... ;
  • 如果可以在 View Helpers 中创建和使用模型。
  • 如果可以在 View Helper 中使用 Zend_View 可用的方法,就像这样做$this->view->baseUrl('...');
4

1 回答 1

2

你的第二个和第三个要点对我来说似乎是正确的,只要你不从你的观点在你的模型中做任何合乎逻辑的事情。模型和视图之间的链接必须是只读的。

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

关于您的第一个问题,您可以创建专门用于此任务的 View Helper,因此您可以将其用作您的 View Helpers 和 Mapper 之间的简单代理。一个视图助手将允许您访问任何映射器,而其他视图助手可以使用此视图助手来获取映射器。

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

楷模

模型代表知识。模型可以是单个对象(相当无趣),也可以是对象的某种结构。

一方面,模型与其部件之间应该存在一一对应的关系,另一方面,模型所有者所感知的所代表的世界应该是一一对应的。

意见

视图是其模型的(视觉)表示。它通常会突出模型的某些属性并抑制其他属性。因此,它充当演示过滤器。

视图附加到其模型(或模型部分),并通过提问从模型中获取演示所需的数据。它还可以通过发送适当的消息来更新模型。所有这些问题和消息都必须在模型的术语中,因此视图必须知道它所代表的模型属性的语义。

控制器

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

于 2012-02-28T12:49:31.770 回答