2009-12-02 71 views
1

查看很容易從MC中分離出來,如何從頭開發MVC框架?

但是如何區分M和C?這個區別似乎對我有些模糊。

我正在使用PHP。

+0

的可能重複[MVC中,你在哪裏畫一個控制器和模型之間的界線?](http://stackoverflow.com/questions/3499336/in-mvc-where-do-你在控制器和模型之間畫線) – Gordon 2010-11-23 17:07:27

回答

9

MVC的「模型」部分是指數據訪問層,所以您應該創建類來讀取/寫入數據庫。通常它是每個數據庫「實體」的一個模型,所以比如說一個文章類,一個類別類以及一個簡單的數據庫類是個好主意。

「控制器」部分是通用邏輯,通常是入口點。在這裏你檢查輸入和請求頁面,使用模型找到正確的數據並存儲在視圖的變量中。

你說的「視圖」部分很容易。只需包含主要由HTML組成的控制器文件,但輸出您的PHP變量。

10

我不會開始開發一個MVC框架,直到點時,我知道MVC是,很清脆,清晰,並能解釋模型之間的差異,控制器閉着眼睛。做到這一點的方法是學習現有的框架(Cake,Zend,QCubed等)。

+0

同意。我說,我自己創建了兩個完整的MVC系統,而沒有絲毫的線索MVC系統應該是什麼樣子,而且結果非常不完整且令人討厭。我的第三個很不錯tho:D *(但是,Cake或Zend旁邊沒有任何東西)* – Atli 2009-12-02 09:40:57

+2

但是我同意,除了重新發明輪子外,沒有更好的方法來學習輪子的工作方式。即推出自己的(理解和學習)是一個好主意,儘管使用它不是。 – 2009-12-03 09:59:54

+1

用眼睛閉上眼睛比用睜大眼睛描述眼睛更難...... – 2009-12-25 11:01:18

7

第1步:花時間爲現有的開源MVC框架做出貢獻。

第2步:開始考慮製作自己的。

第3步:停止恐慌。

0

M(模型)=業務邏輯

C(控制器)=應用邏輯

0

這可能是一個很好的起點:MVC in PHP是一個涵蓋MVC基礎知識的教程。

2

關於讓無限的猴羣(像我們所有人)保持真正吸引他們注意力的代碼,然後在自己的工作中利用這些代碼而不是完全重新發明輪子,還有很多值得說的。如果您決定創建自己的MVC框架,我鼓勵您整合由真正喜歡這些項目的人開發的專業項目(例如ORM層或模板引擎等),因爲結果可能會在你的整體中成爲更強大的部分,這將最終使你的框架更加成功。

如果你看看這裏提到的MVC(例如Zope,Cake等))當PHP沒有MVC時,他們都開始大約在同一時間,並且你看到他們都有自己的長處和短處,因爲創建它們的開發人員對他們框架的所有方面沒有同樣的熱情。

我說,無論如何,我們站在巨人的肩膀上,我們不妨承認它,把他們的工作納入我們的工作,並對自己和世界誠實。

-C