我正在開始「學習MVC」的方式。基本上,我沒有面向對象編程的大問題,但是有一個技術方面需要澄清。看來我的理論還不夠好。控制器與模型 - 需要說明
目前,我使用KohanaPHP框架,第3版。
示例情況: 我有一個網站,在那裏用戶可以提交文章。
所以,我有以下結構:
classes/
/controllers/
article.php
/models/
articles.php
到目前爲止好。我沒有模型擴展Kohana_Model的問題,但我不確定我是否使用了正在使用ORM的正確方式模型。
基本上,當使用模型擴展Kohana_Model時,我會把所有的邏輯操作放在模型中。我應該對使用ORM的模型執行相同的操作嗎?在網上的很多例子中,我看到控制器對用戶輸入/數據進行邏輯操作,這在我看來是不正確的。
比方說,我需要從數據庫中獲得幾行,所以我在模型中創建適當的方法並返回對象。我認爲這是正確的,不是嗎?
基本上,所有對用戶輸入/數據的操作(從db中選擇,插入db,驗證)我放入模型中。這就是我理解MVC設計模式的方式。模型應該關心所有「機械」操作,控制器只是模型/視圖之間的「橋樑」,而且它是一個「前端」引擎。
這是一個正確的方法嗎?
我知道這對於更高級的用戶來說可能是一個愚蠢的問題,但我只想學習最佳實踐。如果任何人可以提供一些澄清,我會很高興。
這不是一個愚蠢的問題。該主題只是混淆,因爲原來的[MVC模式不匹配web應用程序中的處理](http://stackoverflow.com/questions/1549857/simple-php-mvc-framework/1549970#1549970)。所以不要試圖找到「正確」的方法。通常最適合使用類似PMVC的結構,其中模型僅僅是未知的數據庫接口。 – mario 2011-01-11 10:12:33