2011-09-02 30 views
2

比方說,我有一個模型'Retrieve.php',我有一個名爲'Retrieve'的類,它從數據庫中檢索帖子。然後我在Index.php的控制器中加載該模型,檢索帖子並將其傳遞給查看。我是否需要爲每個控制器創建一個模型?什麼是更好的做法?

現在,我還有一個頁面,我必須顯示這些帖子。比如說Sidebar.php什麼的。現在又一次,我必須檢索這些帖子。那麼,我是否可以再次加載'Retrieve.php',或者我必須爲Sidebar.php創建一個擴展'Retrieve.php'的更多模型?什麼是更好的做法?

而且,一般來說,我是否需要爲每個控制器在一個好的PHP MVC中創建一個新模型?如果是的話,可能Controller和Model應該被命名爲相同?還有什麼建議/意見?

謝謝。

+0

模型類應該被命名爲Posts然後不是Retrieve。使用名詞來表示類名。 – Gordon

回答

1

只創建你需要的模型。請記住,MVC的重點在於模型與視圖分離。這意味着完全可以重用任何你需要的工作來完成工作。如果您有多個需要訪問相同數據的視圖,只需重新使用相同的模型即可。只要確保給出模型的描述性名稱,這樣就不會混淆它們應該代表什麼。

0

對於該模型表示的每個數據結構,您應該只有一個Model類。因此,如果您有5個控制器,每個控制器都訪問相同的模型,您應該仍然只有一個模型類。

0

否 -

模式應該是您的應用程序管理是什麼 - 這樣反而找回,你的模型類可能應該張貼(也許你有你的domain--線程的名詞其他模型類,作者...)

控制器應該訪問他們需要做的工作的模型類;一個模型類可以被幾個控制器使用,一個控制器可以使用幾個模型類。

5

一般來說,模型應該代表一個商業實體而不是一個過程。即,它應該是一個名詞而不是動詞。在你的情況下,你需要一個帖子的模型,並且該模型中的方法將執行「你對帖子做的事情」。控制器然後描述頁面發生什麼操作。在這種情況下,/ post頁面的控制器將檢索帖子並將其傳遞給視圖進行渲染。

相關問題