2012-02-28 58 views
4

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

这将是非常有益的,如果有人能告诉良好的编程习惯与Zend视图助手喜欢工作时遵循:

  • 如果它是确定由$this->view->variable = ... ;
  • 分配的东西在视图助手视图
  • 如果可以在View Helper中创建和使用模型。
  • 如果它是确定做$this->view->baseUrl('...');
+0

没有,我不使用AJAX对于这一点,但我说的是做任何页面的请求是通过登录任何用户每次做出。 – ShayanK 2012-02-28 13:04:30

回答

2

你的第二个和第三个要点,以使用可用的Zend_View内部视图助手方法,如似乎正确的我,只要你不做任何逻辑的东西在你的观点模型。模型和视图之间的链接必须是只读的。

关于你的第一个点,你不需要任何分配给视图,您可以查看助手应直接return你的HTML输出到视图。

关于你的第一个问题,你可以创建一个专门从事这项任务视图助手,所以你可以使用它作为您的视图助手和映射器之间的一个简单的代理。一个视图助手将允许你访问任何映射器,其他视图助手可以使用这个视图助手来获取映射器。

让我们来看看特里夫·林斯卡格想的MVC:

模式

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

模型与其模型 之间应该存在一一对应的关系,另一方面模型的所有者也应该看到所表示的世界。

浏览

视图是其模型的(视觉)表示。它通常会突出显示模型的某些属性,并禁止其他人使用。因此它是一个演示过滤器。

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

控制器

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

+0

在我的第一点我是问有关数据库映射器类的DIV那些直接与数据库联系的类。我的问题是如果它的数据库连接和映射器在视图助手不是'模型' – ShayanK 2012-02-28 13:03:04