php MVC概念优势

时间:2012-01-12 10:41:50

标签: php model-view-controller

我已经使用普通的php和php类实现了应用程序,任何人都可以简单地解释MVC架构的确切概念,差异和优势,我已经阅读了很多关于它的文章,但我正在寻找一个简单的答案,请

MVC在php中的重要性是什么?

3 个答案:

答案 0 :(得分:5)

MVC基本上是“关注分离”

  

MVC模式将应用程序分为3个模块:模型,视图和控制器:

     

模型负责管理数据;它存储和检索应用程序使用的实体,通常来自数据库,并包含应用程序实现的逻辑。

     

视图(演示文稿)负责以特定格式显示模型提供的数据。它与一些流行的Web应用程序中存在的模板模块具有类似的用法,如wordpress,joomla,......

     

控制器处理模型和视图层以协同工作。控制器从客户端接收请求,调用模型以执行所请求的操作并将数据发送到View。视图格式化要呈现给用户的数据,在Web应用程序中作为html输出。

退房:

答案 1 :(得分:3)

在MVC模型中,您的视图和控制器是不同的部分。

因此,您无需更改控制器和模型即可更改视图。

例如:你有你想要在网站上的所有信息,你不能改变设计。您无需在模型代码中进行任何更改,请更改视图aprt。

这与php模板中的想法相同,但适用于三部分。

答案 2 :(得分:3)

- 代码和文件组织

仅仅因为你创建了一个“/ inc”文件夹并制作了“functions.php”文件并不意味着你的代码是有组织的。 在设置PHP Framework时,它已经具有某种文件夹结构。您希望遵循相同的标准,并以一定的方式保持所有组织。 一旦你习惯了这个模型,你永远不会想要回去。 不幸的是,对于仍然使用vi的一些命令行冠军来说,这可能是一个挑战。您将需要处理更多文件,这些文件的大小较小。但是,当您使用一个不错的现代代码编辑器或IDE时,快速浏览应用程序代码并快速找到所需内容将是轻而易举的。

- 公用事业和图书馆

PHP是一种用于Web开发的优秀语言,并提供了无数的工具和库。 但是,如果您尝试仅使用PHP构建整个网站,您会发现自己要么搜索大量第三方代码和库,要么自己编写。 所有顶级PHP框架都附带了某些Libraries和Helpers,它们可以帮助您: 表格验证 输入/输出过滤 数据库抽象 会话和Cookie处理 电子邮件,日历,分页等...... 名单还在继续。更不用说,社区提供了大量可以添加到框架中的插件。

- 安全

在PHP中,您已经可以找到许多输入和输出过滤功能,以保护您的网站免受某些攻击。 但是,手动使用这些功能可能会让人感到疲倦,您可能偶尔会忘记它们。 使用框架,大部分工作都可以自动完成。例如在CodeIgniter中:

  • 传递给数据库对象的任何值都会针对SQL进行过滤 注射攻击。
  • 所有html生成函数,例如表单助手和url助手 自动过滤输出。
  • 可以针对XSS攻击过滤所有用户输入。
  • 自动加密Cookie只需更改一个 配置选项。

- 代码&加快发展

所有PHP框架当然都有学习曲线。但是一旦你克服了这个困境,你将享受到快速应用程序开发带来的好处。

您将编写更少的代码,这意味着更少的时间用于输入。您不必每次都为每个新项目追逐第三方库,因为大多数库都将使用默认的框架安装。

此外,由于您的组织性更强,因此可以更快地追赶错误,维护代码并对现有代码进行更改。

- 绩效工具

来自反对者的一个主要论点来自于这个主题。使用框架与普通PHP代码构建“Hello World”应用程序时,显然会出现性能损失。

但这些基准测试只是不好的例子。首先,您应该了解开发人员比服务器更昂贵。从开发和维护中节省时间可能超过您在服务器上花费的额外资金。

将所有这些放在一边,您可以通过使用PHP框架实际获得性能优势。它们带有帮助您进行缓存,基准测试,分析等工具......

现代框架在动态加载方面也很出色,因为它们只在需要时加载代码。不同的页面请求可以根据需要使用的内容加载不同数量的库代码。

- 适合团队合作

在PHP框架中组织项目的方式也可以帮助您为团队合作创建合适的环境。

你可以让你的设计师在视图上工作,数据库大师在模型上工作,让智能程序员(你自己;))构建可重用的库和插件等......

此外,您可以让某人构建单元测试,因为他们也提供了相应的工具。

这很有趣!