基于MVC模式PHP开发框架研究.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于MVC模式PHP开发框架研究

基于MVC模式PHP开发框架研究   摘要:PHP是主流的Web开发语言之一,但是现有的PHP开发模式无结构化组织,将数据访问代码、逻辑处理代码和表示代码相互混合,带来了诸多问题,已经不能满足Web应用快速发展的需要。本文提出了一个MVC设计模式的PHP实现――FDF框架,给PHP开发者提供了一个Web应用程序框架,分离Web应用程序的数据、视图和控制,实现Web应用程序的松散藕合,从而提高Web应用程序的开发效率、可靠性、可维护性和可扩展性。   关键词:PHP 开发框架 MVC模式   1 概述   互联网迅速发展对Web应用程序的开发效率、可靠性、可维护性和可扩展性提出了更高的要求。PHP具有直观、易于上手,运行速度快,跨平台,开放源代码等优点[1][2],已经成为最重要的Web开发语言之一[3]。但是,现有的PHP开发模式将数据访问代码、逻辑处理代码和表示代码相互混合,无法满足Web应用快速发展的需要。   MVC设计模式对于生成有组织的模块化应用程序,是一种被证实了的有效的方法[4]。MVC设计模式可以将应用程序的数据(Model)、视图(View)和控制(Controller)相互分离,使得表现层能够从逻辑事务层分离出来,实现应用程序的松散的耦合,从而提高应用程序的开发效率、可靠性、可维护性和可扩展性。   2 框架的结构设计   2.1 框架体系结构   本框架采用五层B/S架构的MVC模式,web层对应视图和控制器,业务逻辑层和数据持久层由模型实现。模型(model)包括业务逻辑层和数据持久层,可分离业务逻辑和数据访问逻辑,并对业务逻辑层隐藏了数据库平台,使得各层功能简洁专一。   控制器(controller)包括前端控制器和动作控制器两部分,前端控制器是框架的唯一入口,用来决定下一个动作的实施,而动作控制器处理完整的请求并调用相应的模型生成可供view使用的数据。   视图(view)包括显示逻辑和模板两部分,负责解析显示模板生成特定的用户视图。   2.2 框架运作流程   客户端向服务器发出请求,服务器端使用唯一入口――前端控制器对用户的request进行Mapping,找到与用户request对应的action,动作控制器分析请求内容并调用适当的模型进行业务逻辑处理和数据访问,把处理结果发送到视图层,由视图层加载视图模板,处理显示逻辑并经前端控制器响应给用户。   3 框架的实现   3.1 视图技术   视图的关键是使用模板技术分离PHP代码和HTML代码[5]。在模板文件中将需要动态显示的内容定义成某种形式的变量,视图层处理完显示逻辑后将数据发送给模板解析引擎,替换模板变量生成最终的用户视图。   当Web服务器接到URL请求后,首先判断是否是第一次请求该URL。如果是,调用模板接口,交由模板解析引擎编译该URL所需的模板和代码文件,生成用户视图并输出;否则直接定位到已经存在的用户视图上。这样除了第一次编译成本比较高之外,其他的访问请求则省去了大量的重新解析和读取时间。框架还具有页面缓存技术[6]可以将页面生成静态缓存,使程序运行速度和效率得到更大的提高。   3.2 控制器设计   控制器负责接受用户请求、更新模型,以及选择合适的视图返回给用户。控制器有助于将模型层和视图层分离,从而在同一个模型的基础上开发多种类型的视图。   框架将控制器设计为两部分,前端控制器和动作控制器。前端控制器主要负责分析用户请求,并将用户请求转发给适当的动作控制器处理。动作控制器主要负责调用适当的模型生成供视图使用的数据。   前端控制器index.php是框架的唯一入口,通过配置Apache服务器的rewrite引擎可以确保所有的页面请求均传到前端控制器,从而实现框架的集中控制。因此,除分析转发用户请求外,前端控制器还可以很方便地实现认证(authorization)、日志(logging)和数据验证(validation)等功能。其关键代码如下所示:   …   $action = $bd-make(ev,$bd)-get(HH);// 获取页面参数   if(!$action)$action = index;// 默认控制器   if(file_exists(CA.$dir.$action..action.php)) {//检查控制器是否存在   if($action != index)include CA.$dir.$action..action.php;// 加载动作控制器   return new $action($bd);// 返回动作控制器实例   }   …   动作控制器是客户请求和业务逻辑处理之间的一个适配器,将请求与业务逻辑分开。动作

文档评论(0)

3471161553 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档