在Zend View Helper中使用数据库映射器是一种好习惯吗?因为在我的情况下,这个帮助器让我成为一个<div>
的盒子,它会实时更改并显示在我的应用程序中的所有视图中。我无法将该对象从控制器中的数据库加载,并将其分配给每次查看。
如果有人在使用zend视图帮助程序时能够说出良好的编程习惯,那将非常有用:
$this->view->variable = ... ;
$this->view->baseUrl('...');
答案 0 :(得分:2)
你的第二和第三个要点对我来说似乎是正确的,只要你不从你的观点中对你的模型做任何逻辑性的东西。模型和视图之间的链接必须是只读的。
关于您的第一点,您不需要为视图指定任何内容,您可以查看助手应将return
HTML输出直接发送到视图。
关于第一个问题,您可以创建专门用于此任务的View Helper,这样您就可以将其用作视图助手和映射器之间的简单代理。一个视图助手将允许您访问任何映射器,而其他视图助手可以使用此视图助手来获取映射器。
让我们看看Trygve Reenskaug对MVC的看法:
模型
模型代表知识。模型可以是单个对象 (相当无趣),或者它可能是一些物体结构。
模型与其之间应该存在一对一的对应关系 一方面是零件,另一方面是所代表的世界 另一方面,该模型的所有者。
<强>视图强>
视图是其模型的(可视)表示。它会 通常突出模型的某些属性并抑制 其他。因此它充当演示过滤器。
视图附加到其模型(或模型部分)并获取数据 通过提问来模拟演示所必需的。它 也可以通过发送适当的消息来更新模型。所有这些 问题和信息必须在模型的术语中 因此,view必须知道属性的语义 它代表的模型。
<强>控制器强>
控制器是用户和系统之间的链接。它提供 通过安排相关视图来呈现的用户 他们自己在屏幕上的适当位置。它提供了手段 通过向用户呈现菜单或其他给予方式来输出用户 命令和数据。控制器接收这样的用户输出, 将其转换为适当的消息并传递这些消息 一个或多个观点。