1. 在Web/PHP应用中使用MVC架构
该文档的 PDF 架构已发布 |HERE|。
文档中的代码可通过 |HERE| 获取。
MVC 模型(模型-视图-控制器)旨在明确分离展示层、处理层和数据访问层。遵循该模型的 Web 应用程序将采用以下架构:
![]() |
此类架构通常被称为三层架构:
- 用户界面即视图(V)
- 业务逻辑是控制器(C)
- 数据源即模型(M)
用户界面通常是网页浏览器,但也可能是通过网络向Web服务发送请求HTTP并格式化其返回结果的独立应用程序。应用逻辑由处理用户请求的脚本组成。 数据源通常是数据库,但也可能是简单的平面文件、目录 LDAP、远程 Web 服务等。开发人员应确保这三个实体之间保持高度独立,以便其中一个发生变化时,另外两个无需或只需少量调整。
MVC架构非常适合使用面向对象语言编写的Web应用程序。PHP(4.x)语言并非面向对象的。 不过,我们仍可通过优化代码结构和应用架构,使其更接近 MVC 模型:
- 将应用程序的业务逻辑置于与负责控制请求-响应交互的模块相分离的模块中。MVC架构如下所示:
![]() |
在 [Logique Applicative] 模块中,我们可以区分出:
- 主程序或控制器,它是应用程序的入口点。
- [Actions]模块,即负责执行用户请求操作的一组脚本。
- [Classes métier]模块,该模块汇集了应用程序逻辑所需的PHP模块。这些模块与客户端相互独立。例如,根据作为参数提供的特定信息计算税款的函数,无需关心这些参数是如何获取的。
- 模块 [Classes d'accès aux données],该模块集合了为控制器获取必要数据的 PHP 模块,通常是持久化数据(BD、文件等)
- 生成视图并作为响应发送给客户端的生成器。
在最简单的情况下,应用逻辑通常可简化为两个模块:
- [contrôle] 模块负责客户端与服务端之间的交互:处理请求、生成各种响应
- [métier] 模块,该模块从 [contrôle] 模块接收待处理数据,并向其返回处理结果。该 [métier] 模块随后自行管理对持久化数据的访问。

