2011-01-07 54 views
0

有人可能爲我澄清這一點。在MVC模式中,這個想法是儘可能減少控制器的數量,模型也是與數據源,如XML-RPC等數據源進行通信的位,這也是業務邏輯應該去的地方。MVC - 薄控制器的想法 - Codeigniter/Zend

POST和GET數據是'數據源',並且該數據應該由模型處理還是由控制器處理。

我通常會調用模型中的方法並將其傳遞給後期數據,數據將由控制器進行質量檢查,模型方法將簡單地執行插入或其他操作。應該是,雖然該控制器只是調用模型方法,如果發生一個職位,它負責健康檢查,數據檢查等。

+1

可能的重複[理解MVC:什麼是模型上的「脂肪」的概念,「控制器上的瘦」](http://stackoverflow.com/questions/3109715/understanding-mvc-whats-the-concept-對模型進行控制) – Gordon

+1

這個想法是有可重複使用的模型......因爲畢竟模型正在做與數據庫交談的「艱苦工作」。控制器並不意味着可重用(儘管有時可以......),但它只是使用戶界面與模型進行通信的一種安全方式。所以編寫精簡和特定於應用程序的控制器意味着您的模型具有更通用的邏輯,並且可以節省你自己很多時間在未來。 – rabidmachine9

回答

0

在我的方法中,控制器只是確保發送的數據使用正確的方法(POST/GET)並完成(通過設置默認值或驗證表單),然後將它們發送到模型。 對於可測試性,我強烈建議使用$request->getParams(); $request->getPost() and $request->getQuery()包裝來填充模型。

至於如何從一個較長時間的ZF貢獻者這裏設計的機型,控制器和關係紐帶的額外資源博客:The M in MVC; Why Models are Misunderstood and Unappreciated

+0

偉大的文章鏈接! – kevtrout

+0

不用客氣,你是否需要任何額外的信息來澄清你的問題? –

0

我相信,在控制器的責任與POST的工作和GET數據下降。我將其視爲工作人員處理傳入數據並將其發送到庫或模型,獲取響應並將其路由到其他庫,模型或視圖。