【问题标题】:Database Connection in Zend View HelperZend View Helper 中的数据库连接
【发布时间】:2012-02-28 11:54:44
【问题描述】:

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

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

  • 如果可以通过$this->view->variable = ... ; 在 View Helpers 中为视图分配某些内容@
  • 如果可以在 View Helpers 中创建和使用模型。
  • 如果可以在 View Helper 中使用 Zend_View 可用的方法,例如 $this->view->baseUrl('...');

【问题讨论】:

  • 不,我没有为此使用 ajax,但我所说的 div 是在任何登录的用户每次请求任何页面时生成的。

标签: php zend-framework zend-db-table view-helpers


【解决方案1】:

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

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

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

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

模型

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

模型和它的模型应该是一一对应的 一方面是部分,另一方面是被代表的世界所感知的 另一方面,模型的所有者。

观看次数

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

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

控制器

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

【讨论】:

  • 在我的第一点中,我问的是数据库映射器,比如那些直接与数据库联系的类。我的问题是是否可以在视图助手中拥有数据库连接和映射器而不是“模型”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-19
  • 2011-01-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多