1. 在 Web/PHP 应用程序中使用 MVC 架构
该文档的PDF版本可在此处获取 |HERE|。
该文档的源代码可在此处获取 |HERE|。
MVC(模型-视图-控制器)模式旨在明确划分展示层、处理层和数据访问层。遵循此模式的 Web 应用程序将采用以下结构:
![]() |
这种架构通常被称为三层架构:
- 用户界面是视图(V)
- 应用程序逻辑是控制器(C)
- 数据源是模型(M)
用户界面通常是网页浏览器,但也可能是通过网络向 Web 服务发送 HTTP 请求并格式化接收结果的独立应用程序。应用逻辑由处理用户请求的脚本组成。 数据源通常是数据库,但也可能是简单的平面文件、LDAP目录、远程Web服务等。保持这三个实体之间高度的独立性符合开发者的最佳利益,这样如果其中一个发生变化,另外两个就不必改变,或者只需进行最小的调整。
MVC 架构非常适合使用面向对象语言编写的 Web 应用程序。PHP 语言(4.x 版本)并非面向对象的。尽管如此,开发者仍可通过精心设计代码结构和应用程序架构,使其更紧密地契合 MVC 模型:
- 我们将把应用程序的业务逻辑放置在与负责管理请求-响应交互的模块分开的模块中。MVC 架构如下所示:
![]() |
在 [应用逻辑] 块中,我们可以区分:
- 主程序或控制器,它作为应用程序的入口点。
- [操作] 模块,即负责执行用户请求的操作的一组脚本。
- [业务类] 模块,该模块汇集了应用程序逻辑所需的 PHP 模块。这些模块与客户端相互独立。例如,根据作为参数提供的特定信息计算税款的函数,无需关心该信息是如何获取的。
- [数据访问类] 模块,包含用于检索控制器所需数据的 PHP 模块,通常是持久化数据(数据库、文件等)
- 视图生成器,负责将视图作为响应发送给客户端。
在最简单的情况下,应用程序逻辑通常可简化为两个模块:
- [控制]模块,负责处理客户端与服务端之间的通信:处理请求,生成各种响应
- [业务逻辑] 模块,该模块从 [控制器] 模块接收待处理的数据,并向其返回处理结果。此 [业务逻辑] 模块随后自行管理对持久化数据的访问。

