版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第20章 MVC模式与PHP开发框架,随着Web应用的发展,要求能够快速地部署Web应用。对于Web应用,用户希望既能够保持与Web应用交互之间的稳定,又需要根据用户的要求来调整和改变显示内容的形式。而大部分的Web应用,都将实现一部分常用的功能,开发框架则应运而生。,20.1 MVC概述,对于用户而言,对Web应用的第一感觉就是该应用是否美观、实用。用户看到的界面就是用户界面。用户界面承担着向用户显示问题和与用户进行交互的作用。通常这个用户界面需要在不同的环境下能够正常显示,并能够适应不同的操作需求。,20.1.1 何谓MVC,MVC最初是由Trygve Reenskaug提出,首先被应用在
2、SmallTalk-80环境中,是众多交互和界面系统的构成基础。MVC把交互系统分解成为模型(Model)、视图(View)、控制(Controller)3个部件。其主要目的在于增加代码的重用率,减少数据表达、数据描述和应用操作的耦合度。同时也使得软件可维护性、可修复性、可扩展性、灵活性及封装性大大提高。,20.1.2 MVC的优点,在Web应用中使用MVC模式,其优点主要表现在以下7个方面。 (1)低耦合性。 (2)高重用性和可适应性。 (3)模型的可移植性。 (4)框架结构。 (5)工程化管理。 (6)快速部署。 (7)可维护性。,20.1.3 MVC的不足,虽然使用MVC模式有诸多优点,
3、但也存在一些不足。 (1)增加了系统结构和实现的复杂性。 (2)视图与控制器间的过于紧密的连接。 (3)视图对模型数据的低效率访问。 (4)目前,一般高级的界面工具或构造器不支持MVC模式。,20.2 PHP框架Zend Framework,在PHP 3时,对于其最为常见的批评就是不支持类似于MVC的框架结构。但随着PHP的发展,有越来越多的开发框架可供选择,其中包括PHP商业公司Zend所推出的官方开发框架Zend Framework等一系列优秀的PHP开发框架。这一节将对几个常见的PHP开发框架进行讲解。 框架(Framework)是整个或者部分系统的可重用设计,表现为一组抽象构件及构件实
4、例之间的交互的方法。框架是对特定应用领域中的应用系统的部分设计和实现,它定义了一类应用系统(或子系统)的整体结构。,20.2.1 Zend Framework的特性,Zend Framework(简写ZF)是由PHP商业公司Zend所支持开发的完全基于PHP 5的开源PHP开发框架,可用于开发Web程序和服务。ZF采用MVC架构模式来分离应用程序中不同的部分,以方便程序的开发和维护,其主要特性有以下几个方面。 代码完全采用PHP 5面向对象编写。 丰富完善的组件支持。 良好的Ajax支持。 模块化的结构设计,易于扩展。 完善的文档资料。 灵活的架构设计。,20.2.2 Zend Framewo
5、rk的目录结构,虽然Zend Framework对于Web应用的目录结构没有特别的要求,但在其手册上还是推荐了一种最为常见的目录结构。对于初学者而言,最好还是采用官方文档所推荐的目录结构。该目录结构要求用户对于Apache服务器具有完全控制的权限。因为在该目录结构中,需要将很大一部分的Web应用文件放在网站根目录之外。其目录结构如图20-1所示。,20.2.3 Zend Framework的安装,Zend Framework的安装包可以从其官方网站“ Framework的最新版本为1.7.4。该版本至少需要PHP 5.1.4以上版本的支持。对于更多详细信息请查看其附加的系统需求信息。,20.2
6、.4 引导文件index.php,Zend Framework安装完成后,对于所有不能将客户端所请求的URL映射到磁盘上已存在文件的URL,都将通过引导文件index.php进入。为Web应用程序的所有页面提供了一个中心控制点并确保程序的运行环境已经正确设置,即该文件成为网站的所有非实际文件存在的URL的一个入口。这也是URL重写的目的。 这个处理所有非实际文件存在的URL的引导文件,主要用于处理用户所进行的访问。,20.2.5 页面组织,Web应用程序的每一个页面就是一个“动作”(action),而这些动作又组合到控制器中。例如,用户在浏览器上输入“http:/localhost/artic
7、le/show/page/2”,此时index.php将对该URL进行截取。在网站地址后面的是控制器名称,紧跟着的是动作名称,接着是参数名和参数值,以此类推。在上述URL中,article为控制器名称,show为动作名称,page为参数名称,其参数值为2。引导文件index.php将会自动从controllers文件夹中查找名称为ArticleController.php的控制器文件,再在该控制器文件中查找名为showAction的动作。,20.2.6 控制器类Controllers,理解了Zend Framework对于URL的规定后,就可以开始编写控制器类了。控制器类名称必须类似为Cont
8、roller nameController的格式。其中,控制器类名称Controller name的第一个字母必须大写。控制器类保存在controllers文件夹中,文件名为Controller namController.php。控制器类中的每一个动作必须为名为action nameAction的一个public函数。动作名称action name的第一个字母必须小写,并且动作名称全是小写。,20.2.7 视图文件,前面讲到,对于控制器的每一个动作,Zend_View对象都将会在指定的文件夹中去寻找与动作名称相应的.phtml显示脚本,并将其内容显示出来。,20.2.8 布局,在显示脚本中,
9、对于一个控制器中的大部分显示而言,更多都是重复其页面代码。若同时存在着若干个动作时,将增加大量的工作量和重复代码。在Zend Framework框架中,专门提供了一个Zend_Layout对象解决该问题。 Zend_Layout组件允许将显示脚本相同的头部和尾部代码移到独立的布局显示脚本(layout view script)中,并在布局显示脚本中包含与正在执行的动作相关的显示代码。 若需要在Web应用中使用Zend_Layout组件,需要在Web应用初始化时启动Zend_ Layout。,20.3 小结,本章介绍了Web开发中的MVC模式和PHP开发框架Zend Framework。在Web开发中,采用MVC开发模式可实现程序逻辑与页面的分离,方便PHP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年皖南医学院马克思主义基本原理概论期末考试笔试真题汇编
- 2025年停车场智能停车设备五年报告
- 2024年贵州机电职业技术学院马克思主义基本原理概论期末考试真题汇编
- 2025年重庆应用技术职业学院马克思主义基本原理概论期末考试笔试真题汇编
- 2024年江苏省青年管理干部学院马克思主义基本原理概论期末考试真题汇编
- 河北省秦皇岛市海港区2025年七年级上学期期末质量检测英语试题附答案
- 2025年保定理工学院马克思主义基本原理概论期末考试真题汇编
- 2025年廊坊职业技术学院马克思主义基本原理概论期末考试参考题库
- 2024年齐鲁医药学院马克思主义基本原理概论期末考试真题汇编
- 2025年武汉交通职业学院马克思主义基本原理概论期末考试真题汇编
- 草原补偿协议书
- 江苏省2025年普通高中学业水平合格性考试试卷英语试卷(含答案详解)
- 2025年全国新闻记者职业资格考试(新闻采编实务)题库及完整答案
- 人教鄂教版(2017秋)小学科学四年级上册期末综合质量检测卷(含答案)
- 腭裂喂养护理:新生儿与婴儿喂养技巧
- 呼吸机管路护理与VAP预防的关键措施
- (2026年)植入式静脉给药装置(输液港)团体标准解读课件
- 服装上下游合同范本
- 国开-人文社会科学基础(A)-期末终考-学习资料
- GB∕T 5824-2021 建筑门窗洞口尺寸系列
- 中学生两会模拟提案
评论
0/150
提交评论