Zend View Helper中的数据库连接

时间:2012-02-28 11:54:45

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

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

如果有人在使用zend视图帮助程序时能够说出良好的编程习惯,那将非常有用:

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

1 个答案:

答案 0 :(得分:2)

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

关于您的第一点,您不需要为视图指定任何内容,您可以查看助手应将return HTML输出直接发送到视图。

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

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

  

模型

     

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

     

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

     

<强>视图

     

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

     

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

     

<强>控制器

     

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