2012-02-28 101 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