试图了解MVC - 我已经在做了吗?

时间:2011-04-04 04:36:43

标签: php model-view-controller design-patterns design-principles

我在越来越大的应用程序中迅速变得越来越熟悉,所以我认为了解哪些模式以及它们如何工作是个好主意等等。所以,我正在观看有关youtube和阅读的一些教程一些有关模式和设计原则以及MVC的书籍出现了。我听说过它,但从未真正理解它,还没有使用Zend或CodeIgniter或其他使用它的内在。

无论如何,在研究MVC主题的过程中,似乎我已经在使用它了。有人可以验证吗?以下是我通常使用登录系统设置应用程序的方法:

login.php - 这是显示表单的html页面。表格提交:

process.php - 这个类检查submit的值,并根据值,验证输入,检查密码,发回适用的错误,如果一切都是Kosher,它实例化User对象:

user.php - 这是一个模拟用户需要的属性和方法的类,包括将用户添加到数据库,提取配置文件信息,注销,实例化私人消息等内容来自用户的对象,设置所需的会话变量等。然后将信息返回到process.php,然后标题重定向回主页并成功登录。

所以......这是一个简单的MVC吗?在我完成的学习中,登录听起来像视图,过程听起来像控制器,用户听起来像模型。我相信这里有更深入的内容,但我真的试图绕过这些东西,所以对我的逻辑的任何调整都非常受欢迎。感谢。

3 个答案:

答案 0 :(得分:2)

简而言之,你所拥有的是MVC模式的准系统基础知识。

MVC范例中一个常用的词组是"胖模型,瘦子控制器"。通常,您的验证应在模型对象中完成。控制器应尽可能轻。

答案 1 :(得分:2)

你的3页听起来很像MVC。但是,使用像Codeigniter或Zend这样的框架来编写更严格和可维护的代码总是有帮助的。

答案 2 :(得分:2)

MVC是一种将应用程序的三个主要部分分开的方法,以提高可维护性,通常还有性能。

例如,如果您使用的是PHP 5.3(您应该使用,后期静态绑定,名称空间等非常有用!),您可以为应用程序的每个部分使用命名空间。然后,当您的应用程序逻辑出现错误时,您确切地知道您需要转到模型以执行特定操作并进行修复。

视图允许我们将显示逻辑与应用程序的业务逻辑分开。有些人可能会将XHTML与内联<?php echo $myVar; ?>类似,但有些人可能更喜欢使用模板。这意味着当您编辑应用程序的GUI或其他外向部分时,它将永远不会对您的业务产生任何影响。

这意味着您的所有代码都是有条理的,并且可以提高可维护性,同时还可以模块化您的应用程序。如果你使用自动加载器(总是使用spl_autoload_register('myAutoloader')而不是function __autoload($className),因为它可以被库和事物覆盖),这样会更好。所以你的应用程序只在需要时加载所需的东西。

相关问题