2010-02-13 87 views
2

我想用HTML,MySQL,PHP和Model View Controller創建我的第一個Web應用程序。對於初學者來說,這將非常簡單:一些頁面允許用戶向/從數據庫輸入/刪除數據並顯示數據庫的內容。從頭開始設計/實現MVC

但是我對MVC很陌生,我真的希望我能找到適合像我這樣的初學者的MVC教程,以便如何使用簡單的代碼示例實際實現它。我只找到一些先進的例子,這使得學習曲線不必要地更陡峭。我想我必須在這裏創建一個。

我的問題是,我如何開始從一個非常非常簡單的Web應用程序從頭開始設計這個MVC?如何在代碼中分離模型,視圖和控制器?我應該採取哪些步驟以及如何進行?如何將模型實現爲業務實體類,HTML視圖和控制器作爲將所有內容粘合在一起的腳本? (假設我的理解是正確的)任何人都可以推薦清楚和直接的教程如何爲像我這樣的初學者實際實現MVC? (我找不到任何)。

在此先感謝。

+1

爲什麼要從頭開始構建?有很多的MVC,對於任何你喜歡的語言... – Amirshk 2010-02-13 21:26:25

+0

感謝您的回覆。我在維基百科上閱讀。我不確定初學者真正瞭解MVC的最佳方法是什麼。我可能是錯的,但用C++作爲例子,學習從頭開始編寫鏈表(至少一次)將教會初學者不僅僅是從一開始就使用像Boost這樣的庫。不知道我的邏輯是否正確 – Anthony 2010-02-13 21:36:19

+1

我認爲在這種情況下,這種方法並不好。因爲一個好的MVC有很多不同的概念。它囊括了很多想法。你可以閱讀這本書:http:// apress。com/book/view/1430210079,它很好地解釋了MVC是如何誕生的以及它確切需要它的答案(特別是C#MVC) – Amirshk 2010-02-13 21:50:34

回答

3

有很多框架可以幫助你解決這個問題。我會推薦使用CakePHP,http://www.cakephp.org。它有很好的文檔,一個大型社區和很多教程!

+1

請注意,目前大多數PHP「MVC」框架都實現了不是真正的MVC。換句話說:他們實施這種模式是錯誤的。至少Symfony/ZF/Kohana不處理它。我很確定CakePHP(我從來沒有使用它)也沒有正確實現它。 – Crozin 2010-02-13 21:37:46

+0

感謝您的回覆戴爾。我將CakePHP看作PHP提供的許多框架之一。我現在就開始研究。只是好奇,從頭開始設計MVC很困難?再次感謝您推薦CakePHP – Anthony 2010-02-13 21:43:07

+0

@Crozin,謝謝您的回覆。你是如何學習MVC的:從零開始還是一個框架?這對初學者更有益?如果有的話,你會推薦哪個框架?感謝您的洞察力 – Anthony 2010-02-13 21:48:25

1

有沒有這個快速路徑。

如果您確實想構建一個MVC,請查看一些現有的MVC。閱讀他們的文檔,並嘗試理解他們爲什麼做出某些選擇(安全性,健壯性等)。

您會發現here是現有MVC的良好列表。

+0

@Am,我正在閱讀CakePHP,它看起來很有趣。 – Anthony 2010-02-13 22:06:23

1

瞭解MVC如何工作的一個很好的教程是this one。它向你展示瞭如何從頭開始創建一個框架,但如果你想做更復雜的事情,我建議你使用現有的框架。

+0

@eduardoks,感謝您的回覆和鏈接。我首先進入CakePHP,當我準備好時,我會花時間嘗試創建自己的MVC。 – Anthony 2010-02-14 02:43:04

2

當你想第一次做MVC時,你不會從頭開始。 Dale首先推薦使用CakePHP。當你做了很多次並理解了MVC的內容,那麼你將能夠在沒有框架的情況下實現MVC。

+0

感謝您的回覆@sibidiba。從你的repsonce來看,這聽起來像MVC是複雜的,特別是對於初學者。我是PHP新手。當我思考這個MVC時,我想到了C++類以及如何將我的代碼模塊化以分離出三個部分。是的,我喜歡迄今爲止的文檔,已經登錄到IRC聊天,我迫不及待地想看看CakePHP是什麼樣的。 – Anthony 2010-02-14 02:41:13

+1

MVC根本不復雜。我想你已經知道它的概念。但是使用和實現MVC框架是不同的。對於後者,您必須深刻理解MVC的概念,您正在使用的語言以及典型的使用場景。永遠不要從頭開始,除非你真的,真的不得不。 認爲你沒有任何經驗的代碼會更好,更乾淨和更實用,那麼經驗豐富的幾十名程序員的代碼就是每個程序員(包括我)經常犯的錯誤。 – sibidiba 2010-02-14 20:24:24

+1

對於CakePHP,這是一個很好的資源:http://book.cakephp.org/ 而這個:http://api13.cakephp.org/classes 我真的很喜歡CakePHP,就是這麼簡單,當你懷疑它是如何工作的時候,你可以很容易地查看它的源代碼。 – sibidiba 2010-02-14 20:25:53

1

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

+0

+1感謝您的鏈接。非常感激。 – Anthony 2013-06-12 11:25:01

1

我覺得Symfony2的將是一個正確的選擇,因爲它的代碼量非常廣泛,也是它的企業級的縮放比Zend框架更加堅固....

+0

對不起v.v.遲到的回覆... – 2013-06-11 22:48:01

+0

+1不用擔心。謝謝回覆。目前,我正在使用CodeIgniter,Django,很快,我也將使用Rails。我什至不想從頭開始寫任何東西。 – Anthony 2013-06-12 11:24:34

+0

是的,對嗎@Anthony,對於需要快速工作解決方案的開發人員來說,從頭開始編寫是一項非常痛苦和耗時的任務...... – 2015-08-02 14:20:44

1

FWIW,所有的服務器端框架(包括PHP)不能MVC在原始SmallTalk MVC(例如,客戶端上下文)環境中,因爲缺少活動事件循環。服務器端MVC最接近Smalltalk MVC的就像Model2(http://en.wikipedia.org/wiki/Model_2)。