2010-02-13 86 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)。