预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共14页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

零基础学PHP 第20章PHP与MVC开发模式 MVC是一种源远流长的软件设计模式,早在20世纪70年代就已经出现了基于MVC的开发模式。 随着Web应用开发的广泛展开,也因为Web应用需求复杂度的提高,MVC这一设计模式也渐渐被Web 应用开发所采用。 随着Web应用的快速增加,MVC模式对于Web应用的开发无疑是一种非常先进的设计思想,无论 选择哪种语言,也无论应用多复杂,它都能为构造产品提供清晰的设计框架。MVC模式使得Web应用 更加强壮,更加有弹性,也更加个性化。本章先介绍什么是MVC,然后介绍几款PHP中常见的基于 MVC的开发框架及其应用。 20.1什么是MVC模型 MVC模型是开发大型Web应用时可以采用的程序架构。MVC是Model_View_Control的缩写,简单 地讲,Model即程序的数据或数据模型,View是程序 视图界面,是程序的流程控制处理部分。视业 Control用务 图 Model_View_Control是软件设计的典型结构。如户逻 (V)辑 今这一设计思想也开始在Web开发中实践并流行起 这里就是 来。在这种设计结构下,一个应用被分为三个部分: 控制器(C) model、view和controller,每个部分负责不同的功能。 model是指应用程序的数据,以及对这些数据的操作, 数据模型(M) view是指用户界面,controller负责用户界面和程序 数据之间的同步,也就是完成两个方向的动作。这个 两个动作如下所示。 ❑根据用户界面(view)的操作完成对程序数数据抽象层 据(model)的更新。 ❑将程序数据(model)的改变及时反应到用户 界面(view)上。数据库 PHP中的MVC架构可以用图20.1来描述。MySQL/SQLite 使用MVC架构Web应用程序,可以使程序结构 图的架构 更加清晰,增强代码稳定性。在MVC机制下,应用20.1PHPMVC 被清晰地分为model、view、controller3个部分,这3个部分依次对应了业务逻辑和数据、用户界面、 用户请求处理和数据同步。这种模块功能的划分有利于在代码修改过程中选取重点,而不是把具有不 同功能的代码混杂在一起造成混乱。随着开发规模的扩大,这种架构将有利于提高开发效率,有利于 控制开发进度。 励志照亮人生编程改变命运 378 第20章PHP与MVC开发模式 20.2MVC模型的组成 MVC是一个设计模式,它使Web应用程序的输入、处理和输出分开进行。MVCWeb应用程序被 分成3个核心部件:数据模型(Model—M)、视图(View—V)、控制器(Controller—C)。一 个好的MVC设计,不仅可以使模型、视图、控制器高效完成各自的任务处理,而且可以让它们完美 地结合起来,完成整个Web应用。 20.2.1控制器 控制器负责协调整个应用程序的运转,简单来讲,控制器的作用就是接受浏览器端的请求。它接 受用户的输入并调用模型和视图去完成用户的需求,当用户单击Web页面中的超链接或发送HTML表 单时,控制器本身不输出任何东西,它只是接收请求并决定调用哪个模型构件去处理浏览器端发出的 请求,然后确定用哪个视图来显示模型处理返回的数据。 20.2.2数据模型 通常,Web应用的业务流程处理过程对其他层来说是不可见的,也就是说,模型接受视图请求的 数据,并返回最终的处理结果。 数据模型的设计可以说是MVC最主要的核心。对一个开发者来说,需要专注于Web应用的业务模 型的设计。MVC设计模式把应用的模型按一定的规则抽取出来,抽取的层次很重要,抽象与具体不 能隔得太远,也不能太近。MVC并没有提供模型的设计方法,只是用来组织管理这些模型,以便模 型的重构和提高重用性。从面向对象编程来讲,MVC定义了一个顶级类,在告诉它的子类有哪些是 可以做的。这一点对开发人员非常重要。 既然是数据模型,那么它就携带着数据,但数据模型又不仅仅是数据,它还负责执行那些操作这 些数据的业务规则。通常会将业务规则的实现放进模型,这样保证Web应用的其他部分不会产生非法 数据。这意味着,模型不仅仅是数据的容器,还是数据的监控者。 20.2.3视图 从用户角度说,视图就是用户看到的HTML页面。从程序角度说,视图负责生成用户界面,通常 根据数据模型中的数据转化成HTML输出给用户。视图可以允许用户以多种方式输入数据,但数据本 身并不由视图来处理,视图只是用来显示数据。在实际应用中,可能会有多个视图访问同一个数据模 型。如“用户”这一数据模型中,就有一个视图显示用户信息列表,还有管理员使用的用于查看、删 除用户的视图。这两个视图同时访问“用户”这一数据模型。 在很多Web开发中,都会使用模板来生成用户最终看到的HT