免费论文查重: 大雅 万方 维普 turnitin paperpass

探究框架基于MVC方式轻量级PHP框架设计与实现

最后更新时间:2024-02-01 作者:用户投稿原创标记本站原创 点赞:24495 浏览:108649
论文导读:页面并记录出错信息。系统开发完成后,系统关闭Debug高度模式进入常规运行模式。

3.6模型、模块12下一页

摘 要 本文提出和实现一种基于MVC设计模式的模块化、插件化轻量级PHP框架,适合团队开发,能极大地降低学习成本。开发人员通过简单配置实现模块、插件的按需加载,保证系统的运行效率,并能通过继承和拓展实现快速开发。
关键词 PHP框架 轻量级 模块化 插件化
1 MVC设计模式
MVC是一种软件设计模式,它强制性使应用程序的输入、处理和输出分开,分解成模型、视图、控制器3种部件,它们各自处理自己的任务,如图1所示。
视图(View)是用户看到并与之交互的界面。模型(Model)用来表示数据和业务规则,数据的处理、逻辑和功能的计算。控制器(Controller)用来接受用户的操作并调用模型和视图完成用户的需求。
图1:MVC工作流程图
使用MVC模式开发的优点主要有加快项目的开发效率、增强项目的可维护性、有利于软件工程化管理。
2PHP开发框架现状
所谓框架就是通过提供一个开发程序的基本架构,把程序开发摆到了流水线上。使用框架的优势在于能极大地促进快速软件开发,节约系统开发的时间,创建更为稳定的程序,并能减少开发者的重复编写代码的劳动。
目前流行的PHP开发框架有:Zend Framework、CakePHP原创论文www.7ctime.com
、symfony、E框架、Codelgniter、ThinkPHP等。但使用框架也有一些不足,主要有:①增加系统的复杂性。②在提高大型项目开发效率的同时,降低了小型项目的开发效率,③数据处理流程复杂化,从而在一定程序上影响系统的性能。④为了使框架具有良好的兼容性的,提供大量的功能组件和特性,普遍为重量型框架体系。
框架的重量型与轻量型是相对的,两者解决问题的侧重点是不同的。轻量级框架侧重于减小开发的复杂度,相应的它的处理能力便有所减弱(如事务功能弱、不具备分布式处理能力),比较适用于开发中小型系统应用。重量级框架则强调高可伸缩性,适合与开发大型企业应用。
轻量级框架和重量级框架的区别是以启动程序需要的资源来决定。比如,EJB启动的时候,需要消耗大量的资源如内存,CPU等,所以是重量级。
鉴于此,本文提出一种基于MVC的轻量级PHP开发框架,同时强调模块化、插件化按需加载服务的框架体系,具备在降低开发复杂度的同时,增加系统的可伸缩性。
3轻量级WEB开发框架设计与实现

3.1框架底层结构

通过对Web常规应用的抽象,整个框架可由系统初始化基本函数库、系统核心类库,模型类库等公共基础类组成。核心主要负责底层的操作,由核心加载系统,加载模块。在这里所谓系统是指多个模块的集合体,系统内各模块由完成系统加载。各个系统的实现均以继承系统父类的方法来进行扩展,系统父类中已经实现了系统的功能,其余个性化的功能按系统的需求进行扩展实现。各个小功能模块的实现也均以继承模块父类的方法来扩展,功能也是要按模块需求扩展。最终形成核心+系统+模块+插件的体系架构。
图2:框架架构图

3.2框架的运行过程

用户请求URL时系统会根据URL路由进行路径的判定,如果适用于静态化规则的,则直接返回指定的静态化页面;如果不是静态URL的(伪静态或动态),则将请求转发给相应的控制器进行解析,解析处理后再由相应的控制器进行响应,处理器通过与模型、视图、缓存等进行交互后最终形成完整的数据输出给请求的用户。

3.3开发统一规范性要求

系统的二次开发,需要开发者遵照框架设定的规范进行,形成统一的标准,以方便后续代码的管理和维护。其中缓存文件根据不同的类型分别存在在不同的子目录和文件,主要的目录和文件如表1所示。

3.4加载器

加载器是一个自动包含所需的组件并将其进行初始化的一类函数,它们根据用户请求的URL判断需要加载的模块或插件,按需加载模块或插件所特有的功能组件,可加载类、模型、配置、语言包等。

3.5错误处理

框架定义了Debug调试模式和常规模式两种运行机制。Debug调试模式主要用于系统开发人员对系统进行调试开发,输出系统规定的报错信息,方便系统开发人员调试系统。常规模式则屏蔽系统错误,在用户请求出错或系统出错时,返回指定的页面并记录出错信息。系统开发完成后,系统关闭Debug高度模式进入常规运行模式。

3.6模型、模块

论文导读:
模型是对统核心代码的应用实例,通过对底层核心类的继承来扩展功能,形成模型(在这里也称为模块)特有的功能。支持常规的文章资讯、图片、下载、视频等模型应用,支持对模块进行复制、安装、暂停、删除,真正实现按需加载,示例如图3所示。
图3:系统中模型的管理

3.7控制器

控制器是所有逻辑的中心,负责将用户的URL以合理的方式响应。系统采用多文件入口机制,用户请求URL直接向具体的文件请求,提高了系统的运行效率和具备良好的SEO支持。典型的URL请求如:http://localhost/admin.php?moduleid=7&file=course。控制器可以向类库、模型、缓存等众多对象发送请求,并通过数据层和视图层访问,以实现清晰的分层分工机制。

3.8视图/模板

视图是使用控制器处理后的数据来渲染用户指定的模板,以最终展现给用户的界面。同一个视图可以被不同的模型调用。视图收到渲染请求后,为了提高渲染的效率,会优先查找要渲染对象的缓存文件,如果缓存文件中存在,则将其加载到内存,然后输出数据;如果缓存中不存在,同加载模板编译器对模板进行编译,并存放在指定的位置,最后再加载并输出数据。

3.9缓存机制

框架当中大量使用缓存机制,系统运行时,直接读取缓存文件,这极大地提高系统的执行效率。可供缓存的信息包括系统配置信息、模块配置信息、插件配置信息、视图模板以及需要频繁从数据库读取信息的数据,时时系统也支持memcached缓存机制。当系统要读取的缓存文件不存在时,将加载文件缓存生成器,生成相应的缓存文件,并存放在指定的位置,如图4所示。
图4:部分重要的缓存目录和文件
4总结
每个PHP框架都有自己的特色,如CodeIgniter是一个为建立PHP网站的人们所设计的工具包。其目标在于快速的开发项目,提供了丰富的库组以完成常见的任务。本文提出的框架有利于团队合作开发,提供便利的模板机制,高效的缓存文件和多样的URL规则,统一规范的文件目录结构,以模块化、插件化使系统功能和规模具备极高可伸缩性。
参考文献:
郭欣.构建高性能Web站点[M].北京:电子工业出版社,2009.
刘立芳.基于MVC模式与插件式设计的开发架构的探讨与实践[J].电脑编程技巧与维护.2011(14).
[3]刘宇祥 PHP流行框架的研究[J] 青春岁月.2012(8).
[4]赵增敏.PHP动态网页开发[M].北京:电子工业出版社,2009.
作者简介:
刘倍雄(1983~)男,广东汕头人,硕士,从事计算机软件开发技术与嵌入式方面的教学与研究。
徐完平(1969~)男,湖北咸宁人,硕士,研究方向为语义Web、Web服务。