1

如何判斷視圖或控制器中是否出現了問題?如何判斷視圖或控制器中是否有物體? (Zend Framework)

下面是一些具體的例子:

  • Zend_Captcha:是否所述控制器生成驗證碼,並將其傳遞給視圖或不視圖產生的呢?
  • Zend_Alc:視圖是否決定應該向用戶顯示一段視圖還是您有多個視圖取決於可用的操作並且控制器選擇正確的視圖進行顯示?
  • Zend_Session:視圖是否根據會話數據跟蹤誰在查看它,或者由控制器解析並作爲某種參數呈現給視圖?

是什麼組件(模型,視圖或控制器)應該做什麼寫的地方的規則或準則我可以查看它們?我沒有在Zend Framework站點的文檔中看到這一點。

回答

11

一般來說,這個問題可以適用於任何MVC框架。這裏是我使用的指導方針:

  1. 瘦的控制器。如果可能的話,讓你的控制器不僅僅是在你的模型上調用業務邏輯,並將結果傳遞給你的視圖。

  2. 視圖沒有什麼,但View Logic。做任何與用戶直觀交互有關的事情,例如生成驗證碼,隱藏和顯示基於ACL的鏈接。不要計算總數。不要在模型上調用邏輯。不要做商業邏輯。從視圖中讀取會話以隱藏和顯示數據/鏈接通常是可以的。但是不要依賴安全性:讓你的控制器也是安全的。

  3. 胖模型。儘可能多地將商業邏輯放入模型中。這樣,你可以在控制器之間共享它們。如果您發現自己在控制器中迭代模型元素,根據特定規則重置值或執行復雜的業務邏輯,那麼您應該嘗試找到一種方法將該邏輯放入模型層。

希望這會有所幫助。

+0

我認爲這有很大的幫助。謝謝。 – 2008-10-08 16:25:37

2

對於Capcha,您可以在視圖中生成。對於Acl使用視圖。 Zend_Session可以同時訪問 - 控制器和視圖

+0

我很好奇,既然你說「可以」和「可以訪問」,這聽起來像是寫在某個地方。但我沒有在指南頁面上看到它。我錯過了嗎?它在別的地方嗎? – 2008-10-08 14:50:17

相關問題