简述基于MVC设计模式的PHP快速开发框架研究与实现
基于MVC设计模式的PHP快速开发框架研究与实现摘要:计算机网络迅速发展,Web成为人们之间交流信息的一个关键平台,在网站上人们可以获得诸多最新资讯,还可以进行在线购物、在影音网站观看电影以及欣赏音乐等,可以在网上和朋友进行在线沟通;企业也对Web系统更加依赖,因而web系统的开发备受人们关注,而PHP在Web开发中占据着重要地位,然而目前PHP开发的模式没有结构化组织,把数据访问的代码、表示代码及其逻辑处理代码相互混合,出现了诸多弊端,无法适应Web发展的需求。
本文对基于MVC 设计模式的PHP实现—FDF框架进行研究,为PHP的开发提供了一个Web的应用程序框架,对Web应用程序进行了数据、控制及视图的分离,使Web应用程序实现松散耦合,促进了Web应用程序开发效率的提高,并使其可靠性、可扩展性、可维护性等特点得到增强。
关键词:MVC设计模式;PHP;开发框架互联网、电子商务等发展迅猛,使得动态网站建设要求更高,在网站开发方式上传统的模式已经无法满足人们的需要,MVC模式对这个问题进行来了很好的解决[1]。
MVC作为一种开发模式在解决大型Web项目问题上发挥了重要作用。
PHP 是一种专业的网站的开发语言,然而现有的PHP开发模式尚未有成熟、统一的规范,系统水平的高低取决于开发人员的专业素质及经验等,已经无法满足人们在开发效率、可扩展性、可靠性及可维护性等方面快速房展的需求[2]。
因而把框架机制引入PHP的开发成为人们关注的重点。
一、PHP语言的介绍1.PHP语言的优点PHP(超文本预处理器,Hypertext Preprocessor ),它是一种脚本编程语言,其语言风格和C语言类似[3],PHP具有以下优点:(1)简单易用。
PHP以C的语法为基础,并把Java、Perl和PHP自创的语法相结合,用C的模式进行书写,但是并没有收到C的限制,语法较为宽松(2)具有跨平台性、可移植性。
PHP可以为几乎全部的操作系统例如windows、unix及linux等,可移植性强,跨平台执行能力高。
(3)数据库支持广泛。
PHP可以为诸多数据库例如MySQL 、Oracle、DB2、SOL Server、Access等提供支持,在实际应用过程中和PHP最为搭配的是MySQL。
(4)免费开源,应用较广。
PHP和平常与它同时使用的MySQL、Apache、Linux 等能进行免费开源,在软件开发上,利用LAMP进行开发的项目其投资成本比J2EE 和.NET低很多,性价比较高,在IT界受到高度关注。
(5)具有较高的执行效率。
PHP和其他解释性的语言相比,消耗的系统资源相对较少,PHP能够通过静态编译作为Apache服务器的单独模块俩运行,可以使服务器解释脚本的负担减轻,程序的执行效率提高。
PHP和其他的外部扩展可以通过静态连编进行结合,使运行速度加快,使数据库的效能得到了充分发挥[4]。
PHP还能把代码编译后再执行,从而把代码进行优化和加密,使运行速度和执行效率提高。
2.PHP语言的缺点(1)数据库的支持不够统一。
PHP的扩展接口全是由独立的团队去开发完成的,因此PHP虽然支持的数据库很多,但是每种数据库的操作接口是不同的。
当把某一数据库的开发项目迁移到其他数据库时,几乎所有的数据库访问代码都需要进行修改。
为了能够使应用在多个数据库环境中都可运行,需要研发人员使用不同的数据库接口编写进行同样的数据库操作程序,使开发人员的工作量大幅增加。
(2)命名规范不统一。
PHP和Java不同,命名规范不统一。
PHP开发中,conver_to_html、Converttohtml()及convertoHtml()这样的命名方式经常被同时使用,不利于项目的开发和维护[5]。
(3)在运行机制上PHP和Ruby、Java不同。
PHP是对HTTP请求初始化全部资源,请求处理完毕需要释放全部资源。
而Ruby、Java的垃圾回收机制只是在初次启动时初始化资源。
因而PHP虽然不容易出现内存泄露,但增加了其添加跨请求的高级特性困难度。
(4)PHP开发框架不够成熟。
PHP开发框架起步晚,Structs、ROR又对其影响较大,和PHP语言特点相分离。
目前仍没有一个专门的优秀框架。
框架的普及在PHP领域比不上Java领域。
大部分PHP项目甚至没有任何框架。
PHP作为一种Web开发语言,目前很流行且具有诸多优点,但是也有很多缺点阻碍了PHP的进一步发展与应用。
从框架层面上改进PHP的开发方式,对PHP 的应用具有重要意义。
二、MVC设计模式1.MVC设计模式和它在Web中的应用MVC(Model-View-Controller)把数据处理、数据表示及程序输入输出控制进行分离,对不同部分对象间的通信方式进行了描述,使其不受其它数据模型及其方法的影响,从而让程序结构更加清晰并具有灵活性[6]。
MVC把应用程序的输入、输出、处理强行分离,MVC的应用程序分为模型、控制器及视图三个部件[7]。
MVC组件的功能及关系如下图所示:Web应用程序从传统意义上来说一般都是由ASP/PHP进行创建的。
它们把数据层代码、HTML表示层代码混合,即便开发者经验丰富、水平较高,从表示层把数据分离也具有一定的困难[8]。
MVC把它们从根本上进行了强制分离,虽然MVC 的构造工作量变大,但仍就有诸多优点。
其一,具有低耦合性。
视图层、业务层分离,视图层代码更改不需要对模型、控制器代码进行修改。
同样,改变业务流程或者规则只要对MVC的模型改动就可以,不需要更改视图层代码。
模型和控制器、视图是分离的,因而应用程序的数据层及业务规则改变十分容易。
其二,具有高重用性、可适用性。
科学技术水平不断提高,访问应用程序的方式变得多种多样。
同样一个服务器端的代码MVC模式可以让多种视图进行访问如Web浏览器等。
模式只能够对数据未格式化的部分进行返回,因而为不同界面的使用提供了便利。
其三,具有快速开发的能力,MVC模式可以让界面设计人员对表现形式更加关注,程序员对开发业务逻辑更加重视,使系统的前端、后端同时开发,使系统开发时间大为缩短。
其四,具有可维护性。
视图层、业务逻辑层进行分离,使得它们之间联系只能通过接口,任何部分内部都不会对其他部分产生影响,从而使Web应用具有可维护性。
其五,为软件工程化管理提供了便利。
不同层可各司其职,一个层面的应用不同但也有某些相同特征,为软件工程化管理提供了便利。
2.MVC设计模式的PHP实现PHP对象在服务器端不能跨页面存在,所有PHP实际上是没有办法实现传统的MVC架构的,其问题主要在模型上得到体现,如在Java中,数据模型是独立的,不同于业务逻辑、表现逻辑等,它可以在服务器端跨页面存在,JavaBean 就是在这个方面发挥作用[9]。
PHP进程在内存中不能长期存在,只能在PHP页面刚刚执行时创建,页面执行结束,则该以免已经结束,基础这种庆康,模型不能进行直接实现。
因PHP语言跨页面无法存在,PHP开发框架中使用被动MVC更为适合。
在被动MVC模式上,模型身处MVC结构下却不知。
也就是说模型是一个普通的对象,和MVC中的其他部分是没有关联的。
这样的话,模型就不用再跨页面存在,改变了使用MVC导致的效率低下现象。
被动MVC模式和传统意义上的主动MVC模式不同,模型是一个简单的独立的对象,因而自身的改变不能传达给视图;视图也无法对模型的更新作出订阅及监视等。
视图只能够对控制器传送的数据进行使用或者在得到控制器通知之后再去模型进行最新数据的提取。
所以被动MVC模式下,控制器还要把模型更新之后的数据传送给视图,因而在设计上相较于主动MVC更加困难。
三、基于MVC设计模式的PHP快速开发框架研究与实现1.框架入口设计传统的Web应用程序中,一般是以页面或者文件为基础的,接入模式一般采取多点接入。
这种接入模式可以让用户对系统的文件进行直接访问,并且这些文件可以对用户的请求进行处理并把这些处理的结果反应给用户[10]。
一个系统请求入口就有很多。
这种接入方式给用户显示的接口非常多,容易带来安全隐患,对全局的处理、优化等起了不利影响。
单点接入模式把Web应用应用程序的全部请求都集中到一个脚本文件即所有的HTTP请求都由入口文件统一进行接受。
用户和系统进行交互的入口只有这一个。
这种接入模式具有许多优点,其一,方便全局处理,如对数据进行安全监测等。
其二,可以使程序结构更加清晰,方便进行管理。
入口进行集中控制,程序人员只需要负责开发自己的模块就可以,们不需要对程序运行进行协调。
其三,保证安全,采用单点入口模式,有些模块可以对用户进行屏蔽,模块的物理位置用户难以识别,保证了系统的安全性。
另外,单点接入也使系统的一些耦合缺陷不对用户进行开放。
2.控制器设计控制器主要负责对用户的请求进行接收,并对模型进行更新,再把合适的视图给用户返回。
控制器对模型层和视图层具有分离作用,这种方式有利于在同一个模型的基础上进行视图的开发[11]。
控制器设计被框架一分为二,分别是前端控制器、动作控制器。
前端控制器对用户的请求作出分析,并把这些用户请求转发给相应的动作控制器来进行处理。
动作控制器负责调用适当的模型来生成数据以便视图使用。
框架的唯一入口是前端控制器(index.php),对Apaache服务器的rewrite 引擎进行配置可以使所有页面的请求都传送到前端控制器,以此集中控制框架。
因而,除了对用户的请求进行分析转发之为,前端控制器具有authorization、logging、validation等功能。
关键代码如下:…$action = $bd->make (‘ev’,$bd)->get(HH);// 获取页面参数If(!$action)$action =’index’;// 默认控制器If((CA.$dir.$action.’.action.pop’)) {//检查控制器是否存在If($action != ‘index’)include CA.$dir.$action.’.action.php’;// 加载动作控制器return new $action($bd);// 返回动作控制器实例}…动作控制器作为一个适配器,把客户请求和业务逻辑分开,动作控制器是由action.php文件来实现的,动作控制器全部由抽象类的ActionControllerBase 派生而来,把数据传送给视图的抽象方法是display。
Abstract class ActionControllerBase{public $bd;public $lang;Public function _construct(&$bd){//…}// …Abstract function display();}3.数据操作PHP支持的数据库众多,但是接口支持不具有统一性。
第20章 MVC模式与PHP开发框架
20.1
MVC概述 MVC概述
对于用户而言,看到 对于用户而言,看到Web应用的第一感觉就是该应用是否美 应用的第一感觉就是该应用是否美 实用。这个用户看到的界面就是用户界面。 观、实用。这个用户看到的界面就是用户界面。用户界 面承担着向用户显示问题和与用户进行交互的作用。 面承担着向用户显示问题和与用户进行交互的作用。通 常这个用户界面需要在不同的环境下能够正常显示, 常这个用户界面需要在不同的环境下能够正常显示,并 能够适应不同的操作需求。 能够适应不同的操作需求。就需要在只改变显示界面的 情况之下,完成对Web应用的更改。 应用的更改。 情况之下,完成对 应用的更改
第20章 20章
MVC模式与PHP开发框架 MVC模式与PHP开发框架 模式与PHP
随着Web应用的发展,要求能够快速的部署Web应用。对 应用的发展,要求能够快速的部署 应用。 随着 应用的发展 应用 应用, 于Web应用,用户希望能够随时保持与 应用 用户希望能够随时保持与Web应用交互之 应用交互之 间的稳定, 间的稳定,又需要能够根据需要调整和改变显示内容的 形式。而大部分的Web应用,都将实现一部分常用的功 应用, 形式。而大部分的 应用 此时开发框架应运而生。 能,此时开发框架应运而生。
MVC的优点 20.1.2 MVC的优点
应用中使用MVC模式,其优点如下。 模式, 在Web应用中使用 应用中使用 模式 其优点如下。 (1)低耦合性。 )低耦合性。 (2)高重用性和可适应性。 )高重用性和可适应性。 (3)模型的可移植性。 )模型的可移植性。 (4)框架结构。 )框架结构。 (5)工程化管理。 )工程化管理。 (6)快速部署。 )快速部署。 (7)可维护性 )
何谓MVC 20.1.1 何谓MVC
基于MVC模式的PHP框架设计
基于MVC模式的PHP框架设计【摘要】对于任何语言,框架的发展都是为了降低程序之间的依赖性和耦合性,使重用性达到最高。
本文参照框架、PHP、MVC模型的优缺点,设计一个部署和应用简单、且效率高,具有良好的扩展性和可维护性、占用服务器资源低的PHP框架。
【关键词】框架;MVC模式;PHP本文设计的PHP框架(下文统称为IdeaPHP),是一个采用面向对象的设计思想,基于MVC模式开发的轻量级PHP框架,具有单一入口、类自动加载、强大基础类、扩展类等功能。
该框架继承PHP的优点,部署和应用极为简单、且效率高,具有良好的扩展性和可维护性、占用服务器资源低等特点,能使WEB 开发变得更简单、更快捷,可以稳定的用于个人或中小型企业系统的开发。
1 框架特点1)基于MVC的开发模式,三个部件相互独立,改变其中一个不会影响其它两个,低耦合性;同时,具有很好的维护性、重用性和适用性。
2)本框架采用模块和操作的方式设计,代码采用面向对象思想,框架源码简单易用,独立灵活,便于维护和调试,或二次开发。
3)该框架提供了数据库访问层、功能扩展接口(支持自定义扩展类库和扩展函数),直接使用即可完成一些常见的功能,操作灵活,简单易用。
4)使用Memcached对SQL和session进行缓存,使用Smarty缓存技术进行页面静态化,提升效率,减少运行消耗。
2 框架主要功能2.1 单一入口单一入口即一个文件处理所有的HTTP请求,即访问网站任何功能,都是从浏览器访问index.php文件,这个文件就是这个应用程序的单一入口。
在一般的web过程化编程时,每个PHP文件都能独立访问并运行,这犹如一场演唱会,需要在每个入口都要检票和安全检查。
而采用单一入口进行项目部署和访问时,一个项目只有一个(但不一定是唯一)入口,就像演唱会如果只能从一个入口入场(程序是抽象的,一个和多个入口效率一样),则可以灵活控制现场秩序和安全。
这在一些常见框架如zend,thinkphp,qeephp等,都采用了统一的入口,这样的设计模式在权限控制,url重写,结合MVC清晰的目录结构等都有很大优势。
基于PHP的MVC框架核心技术研究与实现
对 于提高 P H P在 企 业 级应 用 软 件 开 发 中 的 规 范 性 、 可 靠 性 与 可 扩 展 性 都 有 较 大 的促 进 作 用 。
2 MV C实际模 型
MV C( Mo d e l 、V i e w、C o n t r o l l e r ) 是 指 现 代 程 序 设 计 中 一 种 分 层 设 计 模 式 ,将 程 序 代 码 按 其 功 能 边 界 分 为 模 型 ,视 图
S 0 F r W A R E D E V E பைடு நூலகம் 0 P M E N T A N D D E S I G N
软件 开发 与设计
基于 P H P的 MV C框 架核 心技术研 究与实现
罗维
( 成都中医药大学医学信 息工程学 院,成都 6 1 0 0 8 3 )
摘 要 :M V C应用程序开发框架是 MV C开发模 式实现 的基础 。通过对 MV C模 式的深入研 究,以 P H P为基 础 ,提 出了 MV C的 实际模 型 ,设计 了 M V C框 架的体 系架构 ,解决 了框 架的路 由模式 ,研制 了控 制器工厂 、D A O组件与
Ab s t r a c t : MVC a p p l i c a t i o n r f a me wo r k i S f u n d a me n t a l f o r t l l e r e li a z a t i o n MVC d e s i g n p a t t e r n . By t h e t h o r o u g h s t u d y o f t h e t h e o r y o f MVC ,t h i s p a p e r p r o p o s e d a p r a c t i c a l MVC mo d e l b a s e o n P HP l a n g u a g e . T h e a r c h i t e c t u r e o f MVC f r a me w o r k w a s d e s i g n e d .T he ou r t i n g mo d e o f f r a me wo r k w a s r e s o l v e d .T he c o n t r o l l e r f a c t o y ,DAO r c o mp o n e n t a n d t e mp l a t e e n g i n e we r e d e v e l o p e d . F i n a l l y a c o mp l e t e MVC f r a me w o r k d e v e l o p me n t me t h o d wa s f o r me d a s w e l l a s p r o v i d e d s u p p o r t i n g s y s t e m f o r e n t e r p i r s e a p p i f c a t i o n s y s t e m. Ke y wo r d s : MVC mo d e; MVC f r a me wo r k; Ro u t e mo d e; DAO C o mp o n e n t; T e mp l a t e e n g i n e
第25章MVC模式与PHP框架
25.2.2 为什么要用框架
一种技术,最终都是为业务发展而服务的。从业务的角度来讲。首先,框架的是为了企业的业 务发展和战略规划而服务的,他服从于企业的愿景(vision);其次,框架最重要的目标是提 高企业的竞争能力,包括降低成本、提高质量、改善客户满意程度,控制进度等方面。最后, 框架实现这一目标的方式是进行有效的知识积累。软件开发是一种知识活动,因此知识的聚集 和积累是至关重要的。框架能够采用一种结构化的方式对某个特定的业务领域进行描述,也就 是将这个领域相关的技术以代码、文档、模型等方式固化下来。
变态严管 让学习成为一种习惯
25.2.4 比较流行的PHP框架
Laravel ThinkPHP CodeIgniter Yii CakePHP Symfony2 ZendFramework
变态严管 让学习成为一种习惯
25.3 划分模块和操作
25.3.1 为项目划分模块 25.3.2 为模块设置操作
变态严管 让学习成为一种习惯
25.2 PHP开发框架
25.2.1 什么是框架 25.2.2 为什么要用框架 25.2.3 框架和MVC设计模式的关系 25.2.4 比较流行的PHP框架
变态严管 让学习成为一种习惯
25.2.1 什么是框架
框架其实就是一个系统的半成品,是在一个给定的问题领域内,实现了一个应用程序的一部 分设计,是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法,简 单地说就是项目的骨架已经搭好,并提供了丰富的组件库,只增加一些内容或调用一些提供好 的组件就可以完成自己的系统.
变态严管 让学习成为一种习惯
25.3.2 为模块设置操作
操作是指用户对模块管理的一种行为,是用户按照一定的规范和要领操作模块的动作。项目中 的每个模块都是让用户去操作的,所以确认每个模块的操作,就能确定用户对这个模块的管理 行为。确定了操作也就确定一段独立开发的程序代码。例如“友情链接管理”模块中,可以设 置添加、修改、查看、删除、搜索等操作,每个操作都是一段独立代码编写的过程。如果一个 模块的操作比较多,最好还是按操作的性质去划分为多个子模块。例如“用户组管理”和“用 户管理”看做是一个模块也是可行的,那么他们的操作也会混在一起,这样就不太利于程序的 管理和扩展了,所以在划分模块是最好根据操作数的个数来决定,如果一个模块中的操作太少 ,则项目中的模块必然就会过多,而模块中操作过多,则模块的管理又会太差,最好是控制一 个模块的操作在8-12个。
基于MVC模式的PHP程序开发
2012年第28期(总第43期)科技视界Science &Technology VisionSCIENCE &TECHNOLOGY VISION科技视界1PHP 语言的简介PHP,是英文超文本预处理语言Hypertext Preprocessor 的缩写。
PHP 是一种HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML 文档的脚本语言,语言的风格有类似于C 语言,被广泛地运用。
PHP 语言有以下特点:1)支持的数据库非常广泛,SQL Server,Oracle,MySQL,DB2,Access 等。
在实际应用中,跟PHP 搭配最合适的还当属MySQL。
2)跨平台性非常好,支持Windows 系列操作系统,LINUX 操作系统和UNIX 操作系统。
通常最顶点的应用时在LINUX 操作系统中。
3)支持多种Web 服务器。
微软的IIS,Apache 等,通常应用Apache 服务器。
4)免费开源软件。
同时与Linux、Apache、MySQL 构成性价比最高的Web 系统,即我们通常所说的LAMP 系统开发方式。
5)PHP5.0有成熟的面向对象体系,能够适应基本的面向对象要求,完全可以用来开发大型商业程序。
2Smarty 模板技术尽管PHP 功能很强大,但是由于PHP 是属于一种HTML 内嵌式语言,在开发过程中,很多程序员将HTML 代码与PHP 代码混合写在同一页面,PHP 体现的还是面向过程的方式。
为了真正实现PHP 面向对象的功能,我们可以利用模板技术,将HTML 代码与PHP 后台程序相分离。
通过HTML 实现前台页面的显示,PHP 负责后台处理。
Smarty 模版的引入很好的解决了这一问题,Smarty 就是一个小小的解析器。
它可以为我们提供一个通用的模板来实现表现层,不用将显示上的逻辑判断送到PHP 的逻辑层中进行,也不用为了实现代码的分离而因一个小小的显示上的改变重新建一个模板。
如何使用PHP开发自己的MVC框架
如何使用PHP开发自己的MVC框架如何使用PHP开发自己的MVC框架MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。
下面是店铺为大家带来的如何使用PHP开发自己的MVC框架的知识,欢迎阅读。
一、什么是MVCMVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。
MVC模式的目的是实现一种动态的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。
除此之外,此模式通过对复杂度的简化,使程序结构更加直观。
软件系统通过对自身基本部份分离的同时也赋予了各个基本部分应有的功能。
专业人员可以通过自身的专长分组:(控制器Controller)- 负责转发请求,对请求进行处理。
(视图View)–界面设计人员进行图形界面设计。
(模型Model)–程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(可以实现具体的功能)。
模型(Model)“数据模型”(Model)用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。
“模型”有对数据直接访问的权力,例如对数据库的访问。
“模型”不依赖“视图”和“控制器”,也就是说,模型不关心它会被如何显示或是如何作。
但是模型中数据的变化一般会通过一种刷新机制被公布。
为了实现这种机制,那些用于监视此模型的视图必须事先在此模型上注册,从而,视图可以了解在数据模型上发生的改变。
视图(View)视图层能够实现数据有目的的显示(理论上,这不是必需的)。
在视图中一般没有程序上的逻辑。
为了实现视图上的刷新功能,视图需要访问它监视的数据模型(Model),因此应该事先在被它监视的数据那里注册。
基于PHP技术的MVC框架的实现与应用
基于PHP技术的MVC框架的实现与应用何永太【摘要】通过对MVC设计模式原理的分析,利用PHP技术,提出一种实现MVC框架的方法,以期实现提高大中型PHP项目的开发效率、增加项目的可维护性,实验验证,其方法可行.【期刊名称】《安徽水利水电职业技术学院学报》【年(卷),期】2010(010)004【总页数】3页(P10-12)【关键词】PHP;MVC;框架【作者】何永太【作者单位】安徽水利水电职业技术学院,安徽,合肥,231603【正文语种】中文【中图分类】TP312PHP(PHP:Pypertext Preprocessor超文本预处理程序)技术是当前在中小型Web 应用开发中广泛使用的技术。
但随着应用程序规模的增大,开发者会发现PHP在项目控制方面显得不够,团队协同开发困难。
本文结合PHP技术实现一个MVC(Model-View-Controller)模式的PHP开发框架,以弥补PHP本身的一些不足。
1 MVC设计模式MVC是一种软件设计模式,它强制性使应用程序的输入、处理和输出分开,分解成模型、视图、控制器3种部件,它们各自处理自己的任务,如图1所示。
视图(View)是用户看到并与之交互的界面。
模型(Model)用来表示企业数据和业务规则,数据的处理、逻辑和功能的计算放于其中。
控制器(Controller)用来接受用户的操作并调用模型和视图完成用户的需求。
图1 MVC模式结构使用MVC模式开发Web应用的优点主要有:①加快项目的开发效率;②增强项目的可维护性;③利于软件工程化管理。
应用MVC的不足主要有:①增加了系统的复杂性;②在提高大型项目开发效率的同时,降低了小型项目的开发效率;③数据处理流程复杂,从而在一定程度上稍微降低了系统的性能。
2 基于PHP技术实现MVC框架在PHP容器中实现MVC框架应达到的基本目标如下:框架易于部署;不应限制原生PHP特性的应用;框架具有开放性,能够在其中加入第三方的元素;应能显著提高项目的开发效率,增加项目的可维护性。
基于MVC模式的PHP框架设计
Science &Technology Vision 科技视界作者简介:吕智强(1985.10—),男,福建泉州人,本科,任职于福州大学。
本文设计的PHP 框架(下文统称为IdeaPHP),是一个采用面向对象的设计思想,基于MVC 模式开发的轻量级PHP 框架,具有单一入口、类自动加载、强大基础类、扩展类等功能。
该框架继承PHP 的优点,部署和应用极为简单、且效率高,具有良好的扩展性和可维护性、占用服务器资源低等特点,能使WEB 开发变得更简单、更快捷,可以稳定的用于个人或中小型企业系统的开发。
1框架特点1)基于MVC 的开发模式,三个部件相互独立,改变其中一个不会影响其它两个,低耦合性;同时,具有很好的维护性、重用性和适用性。
2)本框架采用模块和操作的方式设计,代码采用面向对象思想,框架源码简单易用,独立灵活,便于维护和调试,或二次开发。
3)该框架提供了数据库访问层、功能扩展接口(支持自定义扩展类库和扩展函数),直接使用即可完成一些常见的功能,操作灵活,简单易用。
4)使用Memcached 对SQL 和session 进行缓存,使用Smarty 缓存技术进行页面静态化,提升效率,减少运行消耗。
2框架主要功能2.1单一入口单一入口即一个文件处理所有的HTTP 请求,即访问网站任何功能,都是从浏览器访问index.php 文件,这个文件就是这个应用程序的单一入口。
在一般的web 过程化编程时,每个PHP 文件都能独立访问并运行,这犹如一场演唱会,需要在每个入口都要检票和安全检查。
而采用单一入口进行项目部署和访问时,一个项目只有一个(但不一定是唯一)入口,就像演唱会如果只能从一个入口入场(程序是抽象的,一个和多个入口效率一样),则可以灵活控制现场秩序和安全。
这在一些常见框架如zend,thinkphp,qeephp 等,都采用了统一的入口,这样的设计模式在权限控制,url 重写,结合MVC 清晰的目录结构等都有很大优势。
基于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,动作控制器分析请求内容并调用适当的模型进行业务逻辑处理和数据访问,把处理结果发送到视图层,由视图层加载视图模板,处理显示逻辑并经前端控制器响应给用户。
PHP与MVC开发模式
20.3.3
Smarty 模板引擎
对 PHP 来说,有很多模板引擎可供选择,如最早的 PHPLIB template 和后起之秀 Fast template ,经 过数次升级,已经相当成熟稳定。本小节要介绍的是一款易于使用且功能强大的 PHP 模板引擎— Smarty 。它分开了逻辑程序和外在的内容,提供了一种 Web 页面易于管理的方法。 Smarty 显著特点之 一是“模板编译” ,这意味着 Smarty 读取模板文件然后用它们创建 PHP 脚本。这些脚本创建以后将被 执行,而不是去解析模板文件的语法。可以通过 Smarty 的官方网站获取 Smarty 模板引擎,官方网站的 网址是 / 。下面关于 Smarty 的介绍将以稳定的 2.5 版本为准。 下载 Smarty 安装包,解压后有 3 个目录: libs 模板文件目录,其下有 4 个类文件 1 个目录。首先介绍 的是 Smarty.class.php ,它应该是整个 Smarty 模板的核心类。通常,需要在 Web 应用程序目录下建立如 下所示的目录结构。 ❑ appdir/smarty/libs ,此目录对应压缩包下的 libs 目录,存放 smarty 需要的类文件。 ❑ appdir/smarty/templates_c ,此目录存放模板文件,程序用到的模板文件都放在这里。 ❑ appdir/smarty/templates ,存放模板属性文件。 ❑ appdir/smarty/configs ,存放相关配置文件。
20.2.2
数据模型
通常, Web 应用的业务流程处理过程对其他层来说是不可见的,也就是说,模型接受视图请求的 数据,并返回最终的处理结果。 数据模型的设计可以说是 MVC 最主要的核心。对一个开发者来说,需要专注于 Web 应用的业务模 型的设计。 MVC 设计模式把应用的模型按一定的规则抽取出来,抽取的层次很重要,抽象与具体不 能隔得太远,也不能太近。 MVC 并没有提供模型的设计方法,只是用来组织管理这些模型,以便模 型的重构和提高重用性。从面向对象编程来讲, MVC 定义了一个顶级类,在告诉它的子类有哪些是 可以做的。这一点对开发人员非常重要。 既然是数据模型,那么它就携带着数据,但数据模型又不仅仅是数据,它还负责执行那些操作这 些数据的业务规则。通常会将业务规则的实现放进模型,这样保证 Web 应用的其他部分不会产生非法 数据。这意味着,模型不仅仅是数据的容器,还是数据的监控者。
