




已阅读5页,还剩52页未读, 继续免费阅读
(计算机应用技术专业论文)php开发框架的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中文摘要 随着个人和企业对w e b 应用需求的快速增长,p h p 凭借其良好的平台兼容 性和易用性等优势逐渐成为一种主流的w e b 开发语言。但是现有的p h p 开发模 式无结构化组织,不利于代码复用,因此本文在p h p 开发中引入了框架,借以简 化开发过程,缩短开发周期,节省开发成本,提高开发效率。 本文对当前的p h p 开发模式和技术进行了研究与探讨。在此基础上,设计 实现了一个基于代码收集、组织和管理的p h p 开发框架。该框架由交互单元、 核心单元和库单元三大部分组成,其中核心单元和库单元封装了丰富的p h p 功 能模块,主要包括函数模块、类模块和第三方组件,这些模块对程序开发人员透 明,并提供程序开发中所需的各种编程接口,p h p 开发人员通过调用这些接口实 现交互单元,完成整个项目程序的开发。框架引入了模板和a j a x 技术,提供了 数据操作抽象、校验过滤、调试检查、多语言支持、模块扩充等功能,为p h p 开发人员提供了宽松的开发环境和多种可选择的开发模式。框架使用结构化的方 式组织项目开发过程中的代码,支持多个团队的并行开发,具有自我学习能力, 能够在程序开发过程中整合新的功能模块,并为以后的程序开发提供服务。 该框架结构轻巧、使用简便,能够对现有p h p 代码资源进行有效的管理, 并提供p h p 开发中所需的各种模块和详细的文档支持。本文通过在实际项目开 发中的应用实践,证实了该框架确实能够很好地改善p h p 的开发。 关键词:p h i 框架w e b 开发m v c a b s t r a c t a st h ed e m a n d so fi n d i v i d u a l sa n de n t e r p r i s e sf o rw e ba p p l i c a t i o n sa r eg r e a t l y i n c r e a s i n g p h pw i t hi t sg o o dp l a t f o r mc o m p a t i b i l i t ya n de a s y - t o - u s ea d v a n t a g e s g r a d u a l l yb e c o m e sam a i n s t r e a mw e bd e v e l o p m e n tl a n g u a g e h o w e v e r ,t h ee x i s t i n g p r o c e d u r e s f o rp h pd e v e l o p m e n t sw i t h o u ts t r u c t u r a l o r g a n i z a t i o n h a v e p o o r r e u s a b i l i t y t h i st h e s i st h e r e f o r ei n t r o d u c e sap h pd e v e l o p m e n tf r a m e w o r kt o s i m p l i f yt h ed e v e l o p m e n tp r o c e s s ,s h o r t e nt h ed e v e l o p m e n tc y c l e ,s a v ed e v e l o p m e n t c o s t s ,a n di m p r o v et h ee f f i c i e n c yo ft h ed e v e l o p m e n t a f t e rd i s c u s s i n ga n dr e s e a r c h i n go nt h ec u r r e n tp h i d e v e l o p m e n tp a t t e r n sa n d t e c h n i q u e s ,t h i st h e s i sd e s i g n sa n di m p l e m e n t sap h pd e v e l o p m e n tf r a m e w o r k , w h i c hp e r f o r m st h ef u n c t i o n so ft h ec o l l e c t i o n , o r g a n i z a t i o na n dm a n a g e m e n to fp h p c o d e s n ef r a m e w o r kc o n s i s t so fai n t e r a c t i v eu n i t ac o r eu n i ta n dal i b r a r yu n i t t h e c o r eu n i ta n dt h el i b r a r yu n i tp a c k a g er i c hp h pf u n c t i o nm o d u l e s ,i n c l u d i n gc l a s s m o d u l e s ,t h i r d - p a r t yc o m p o n e n t sa n de t c t h e s em o d u l e sa r et r a n s p a r e n tt ot h e p r o g r a m m e r sa n do f f e rt h e mv a r i o u sp r o g r a m m i n gi n t e r f a c e s t h ep h pp r o g r a m m e r s i m p l e m e n tt h ei n t e r a c t i v eu n i tb yj u s tc a l l i n gt h e s ei n t e r f a c em o d u l e st oc o m p l e t et h e w h o l ep r o c e s so f t h ep r o j e c td e v e l o p m e n t t h ef r a m e w o r ki n t r o d u c e st h et e c h n i q u e s o ft e m p l a t ea n dg j a x ,p r o v i d e sf u n c t i o n so fd a t ao p e r a t i o na b s t r a c t i o n ,c h e c kf i l t e r , d e b u g ,m u l t i l a n g u a g e ss u p p o r t ,m o d u l ee x p a n s i o na n ds oo n i to f f e r saf a v o r a b l e d e v e l o p m e n te n v i r o n m e n ta n dav a r i e t yo fa l t e r n a t i v ed e v e l o p m e n tp a r e m s t h e f r a m e w o r ks t r u c t u r e st h eo r g a n i z a t i o no fc o d e s ,s u p p o r t san u m b e ro fp a r a l l e l d e v e l o p m e n tt e a m s ,a n dh a ss e l f - l e a r n i n ga b i l i t y i tc o u l di n t e g r a t en e wm o d u l e si n t h ep r o c e s so fd e v e l o p i n gp r o c e d u r e s ,a n ds e r v et h ef u t m ed e v e l o p m e n t t h ef r a m e w o r ki sl i g h t w e i g h ta n de a s y t o u s e i tc o u l dn o to n l ym a n a g et h ep h p r e s o u r c e se f f e c t i v e l y , b u ta l s op r o v i d ev a r i o u sm o d u l e sa n dd e t a i l e dd o c u m e n t a t i o n s u p p o r t sf o rp h pd e v e l o p m e n t s a f t e ra p p l y i n gt h ep h pd e v e l o p m e n tf r a m e w o r kt o m a n yp r a c t i c a lp h pd e v e l o p m e n t s i ti sc o n f i r m e dt h a tt h ef r a m e w o r ki sa b l et o i m p r o v ep r o c e d u r e sf o rt h ed e v e l o p m e n to fp h p k e yw o r d s :p i - i p , f r a m e w o r k , w e bd e v e l o p m e n t ,m v c 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的 研究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表 或撰写过的研究成果,也不包含为获得墨鲞盘鲎或其他教育机构的学位或证 书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中 作了明确的说明并表示了谢意。 学位论文作者签名:1 豪蝮1 纪 签字目期: 学位论文版权使用授权书 年若其f 子b 本学位论文作者完全了解鑫盗盘翌7 有关保留、使用学位论文的规定。 特授权墨鎏盘堂可以将学位论文的全部或部分内容编入有关数据库进行检 索,并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校 向国家有关部门或机构送交论文的复印件和磁盘。 ( 保密的学位论文在解密后适用本授权说明) 学位论文作者签名:极纥 导师签名: 匙讼 多月瞎日 签字日期:,7 唧年6 月偿日 第一章绪论 1 1 引言 第一章绪论 随着互联网的广泛普及和网络应用开发技术的迅速发展,w e b 应用已经对人 们的工作和生活产生了深远的影响,许多传统的信息和数据库系统正在逐渐被移 植到互联网上。人们可以通过网络浏览各个网站获取或发布信息、可以利用网上 电子商务在线购买或销售商品、可以在影音网站上欣赏音乐或看电影等等。所有 的这一切都离不开w e b 应用。同时越来越多的企业也急需开发基于w e b 应用的 系统或软件,用以满足其自身不断发展的w e b 应用需求或增强企业产品信息服 务及竞争力。 尽管如此,目前w e b 应用程序的开发交付能力和w e b 应用的快速增长的需 求之间却存在不对等的关系,w e b 应用程序的开发速度已经无法满足急剧膨胀的 w e b 应用需求。因此,为了满足人们在w e b 应用程序的开发效率、可靠性、可 维护性和可扩展性方面提出的更高的需求,w e b 应用程序开发人员开始在程序开 发中引入框架这一复用机制,用来提高w e b 应用程序的开发效率,并保证程序 的质量。 “框架”概念的出现,不仅让传统的w e b 应用程序开发更高效,而且还激 发了程序开发人员对w e b 应用程序开发的浓厚兴趣,极大地促进了w e b 应用的 发展。 近年来,p h p 已经成为w e b 应用程序开发领域中越来越重要的平台,受到 了广泛的关注,并占据了w e b 应用的大量市场。与此同时,p h p 开发框架在p h p 社区领域中也成为讨论的热点。 1 2 简介 1 2 1p h p 简介 p h p ( p h p :h y p e r t e x tp r e p r o c e s s o r ,超文本预处理器) ,是一种脚本编程语 言,主要用于编写服务端脚本、命令行脚本和客户端的g u i 应用程序( 桌面应用 程序) 【1 1 。 同时p h p 还遵循开放源码协议,对于使用者来说,没有购买许可证或限制 第一章绪论 使用的问题。p h p 开发人员可以从网上或其他的地方下载p h p 源代码,可以进 行相应的修改和完善,还可以快速地使用p h p 来制作小型的个人网站,或者运 营大型的电子商务网站等。 它的语法混合了c 、j a v a 和p e r l 的优点及自身的新语法,能够被应用在所有的 主流操作系统上,主要包括l i n u x 、u n i x 、m i c r o s o f tw i n d o w s 等,并支持绝大多 数的w 曲服务器,例如a p a c h e 、m i c r o s o f ti n t e r a c ti n f o r m a t i o ns e r v e r ( i _ i s ) 、p e r s o n a l w e bs e r v e r ( p w s ) 等,具有简单、安全、高性能、可移植等特点【2 1 。 p h p 本身基于c 语言的特性已经使它具备了高效的潜质,再结合提供代码 重用能力的p e a r 、支持页面模板技术的s m a r t y 、可进行代码编译和优化的z e n d 等等,使得p h p 在服务器端的执行效率得到了很大的提高。 近年来,p h p 的发展非常迅速,受到了全球范围内的广泛关注,许多知名的 网站和社区都已经开始广泛地采用p h p 来开发w e b 应用。 1 2 2 开源简介 开源( o p e ns o u r c e ,开放源码) 被美国的o p e ns o u r c ei n i t i a t i v e 协会注册为 认证标记,并对其进行了正式的定义,用于描述那些源码可以被公众使用的软件, 并且此软件的使用、修改和发行也不受许可证的限制【3 】。 虽然开源软件通常可以通过免费下载获得,但这并不意味着开源软件不需要 知识产权保护。开源软件通常也是有版权( c o p y r i g h t ) 的,常见的版权有a s f 、 b s d 、c p l 、g p l 、l g p l 、l g p l 、m i t 等。开源软件可设定的许可条件就是建 立在知识产权保护的基础之上【4 1 。例如,开源软件产品有许可条款和条件,规定 这些程序如何使用、修改和发行。另外,通常允许使用来自开源软件开发者的源 代码的条件是适当地给予源代码的作者拥有代码的归属权,比如署名。所以,不 论是程序开发人员还是产品使用者都需要尊重开源软件开发者的创作以及重视 相应开放源码的版权问题。 通常情况下,开源软件同时涉及到源码本身和开发过程。在开源软件的开发 过程中,任何地方的任何人都可以参与最终产品的制造,同时开源软件的开发过 程给开源软件提供了强大的改错能力,因为它将程序中的错误公开给了数量巨大 的用户,他们都是开源软件潜在的改错者。 在日新月异的科技领域,结合开源理念的项目已经开始逐渐崭露头角,其中 不乏很多著名的作品。例如l i n u x 操作系统,a p a c h ew e b 服务器、p e r l 程序语言、 m y s q l 数据库等等,当然也包括本文介绍的p h p 。 2 第一章绪论 1 2 3 框架简介 框架的概念并不属于p h p 专有,它更早地被应用于其他领域( 例如软件产品) 的开发。因此会有很多熟悉其他语言( 比如j a v a ) 开发的人早已经体会到了框架 的好处嗍。对于开发者而言,最重要的就是框架能够大大地改善开发过程和提高 开发效率【6 1 。 框架指人们根据开发的些共性,对于一定的应用开发,抽象出一套相对合 理有效的开发技术和方法,并研究提供与之相配合的开发工具。例如:设计出一 套结构合理、功能全面的a p i ,或者开发出一套根据模板自动化创建网站的工具, 甚至定义出一套描述应用服务的语言,再加上与之相配合的开发方法,这些都可 以称为框架。 同时框架和架构是两个不同的概念。架构确定了系统整体结构、层次划分, 包括了不同部分之间的协作等设计考虑,但框架比架构更具体,更偏重于技术实 现。在确定框架后,架构也随之确定,而对于同一架构( 如w e b 应用开发中的 m v c ) ,则可以通过多种框架来实现。 框架定义了完整的规范标准,提供了应用开发中所需的各种扩展模块,程序 开发人员只需根据自己的需要进行简单配置和一些开发,就能调用框架模块并完 成整合和提供所需的功能。对于开发过程而言,这样做不仅提高了产品质量,降 低了成本,缩短了开发时间,还使开发越做越轻松,效益越来越好,从而形成一 种良性的循环。 p h p 开发框架( p h pd e v e l o p m e n tf r a m e w o r k ) ,就是一种针对p h p 开发的 框架。它能够简化和加速p h p 的开发,还可以为程序代码及文件增加结构,从 而促使p h p 开发人员编出更易读、更易理解的和更易维护的代码。最终,p h p 开发人员借助于框架也就可以更有效地开发p h p 程序和项目。 p h p 开发框架同时也可以和p h p 一样遵循开源协议,它既可以广泛地吸取众 多优秀p h p 开源代码及相关产品的精华,用以满足自身的需求,提高自身的技术, 丰富自身的内涵,还可以发布和保护相应的框架开发产品,甚至是框架本身 7 】。 这样将不仅仅有利于保护p h p 开发人员及所属企业的利益,还可以促进p h p 及 p h p 开发框架的开发技术和应用的发展。 1 3 课题来源及意义 p h p 作为一种脚本语言,最开始并没有引起人们太大的关注。近几年来, p h p 凭借其简单易学,极好的平台兼容性,很好的运行速度,极其强大的数据库 第一章绪论 支持,先进的扩展功能,源代码免费公开等优势获得了突飞猛进的发展。 与此同时,随着w e b 应用的迅速发展和日益复杂,人们逐渐意识到w e b 应 用程序的开发速度已经无法满足急剧膨胀的w 曲应用需求,而且单纯依靠某种 技术多半无法达到快速开发和快速部署的最佳境界。因此开始尝试着将已有的 w e b 应用开发技术综合起来,形成完整的开发框架或应用模型,以此来提高w e b 应用程序的开发效率和满足各种复杂的应用需求。 在p h p 开发领域中,p h p 开发人员同样面临着严峻的问题。随着p h p 技术 的飞速发展和开发应用需求的日益高涨,人们开始对p h i 程序的开发效率、可 靠性、可维护性和可扩展性等方面提出了更高的要求,传统的p h p 开发方式已 经无法满足实际开发应用的需要,因此p h p 开发框架的研究和设计显得十分的 重要和紧迫。 虽然p h p 开发人员并不一定要使用开发框架来开发程序,但使用框架将给 程序开发带来巨大的好处:减少重复开发工作量、缩短开发时间、降低开发成本、 使p h p 程序设计更合理、运行更稳定等等。基于上述的这些种种好处,现在的 p h p 开发中,p h p 开发人员和企业都开始选用或开发某些适合自己的p h p 开发 框架,用以帮助快速、高效地开发p h p 程序和项目。 关于p h p 开发框架的使用,程序开发人员可以根据各自实际的需要或喜好 选择一个适合自己的框架,然后深入地研究它、应用它,也可以量身打造一个属 于自己的开发框架,进而大大地提高自己的程序开发效率和产品质量。而有经验 的p h p 开发团队和个人则更倾向于构建自己的p h p 开发框架。 由于p h p 本身的开源特点,注定了p h p 的使用和开发将具有很强的共享性。 用户可以遵循b s d 、g p l 等开源协议来使用开放的p h p 源代码和开发框架,这 就为p h p 及p h p 开发框架的发展提供了强有力的支持和保障。 同时p h p 还拥有强大的开源团体和社区支持。在开发项目程序的时候,程 序开发人员经常面临的问题是针对不同的客户需求进行大量的程序定制或重新 开发,如果能有人提供资源支持那将极大地减轻程序开发人员的工作量和负担, 同时大大地提高程序的开发效率和产品质量。在p h p 社区里面,早已经为p h p 开发人员提供大量的资源支持和各种各样的帮助。p h p 开发人员可以通过社区的 支持,很快地获取所需要的项目方案或者具体的功能代码,例如平时最常见的基 于p h p 的开源论坛,c m s ( 内容管理系统) 等等。p h p 还有很多扩展性的项目 来增强其在某个方面的功能,例如注重编程规范化和代码重用的p e a r ,提供可编 译模板技术的s m a r t ) , 等。 程序开发人员不但可以整合现有的程序代码来实现自身的开发应用,也可以 分析学习优秀的开源代码来提高自己的开发技术和水平。总之在使用开源代码 4 第一章绪论 时,不仅仅要懂得借用,更关键的是要学会改进和完善,这样才能真正地提高自 己的开发技术水平,也才能真正地提高开发效率和产品质量。在这点上,通过构 建自己的p h p 开发框架,就能很好地满足收集、组织和管理p h p 代码的需求, 从而对以后的程序开发起到更大的作用。 1 4 课题研究现状 针对w e b 应用程序开发的压力和迫切需求,w 曲程序开发人员开始尝试着在 开发中引入新的技术,并将已有的各种w e b 开发技术综合起来,形成完整的开发 框架或应用模型,希望能够以此来满足各种复杂的应用需求【8 1 。 首先,在w e b 服务端,越来越多的w e b 开发环境和平台开始支持m v c 架 构,并为程序开发提供了完整的开发框架。例如,j 2 e e 和n e t 平台本身就是这 种开发框架的典型代表。 其次,门户服务和w e b 内容管理在近几年也成为了应用集成的重要模型。 这两种应用模型可以直接为程序开发人员或最终用户提供构建w e b 应用的高级 平台,可以让w e b 开发和信息发布工作大大地简化。 在商业软件领域,这一类应用的例子包括m i c r o s o f t 的s h a r e p o i n t 、i b m 的 w e b s p h e r ep o r t a l 等。开源项目在w e b 开发框架和应用模型方面也表现得非常积 极,s t r u t s 、c o c o o n 、x o o p s 等都是开源世界里与m v c 架构、门户服务和w e b 内容管理相关的优秀解决方案。 p h p 是作为一种w e b 应用程序开发语言诞生的,属于非框架 ( n o n f r a m e w o r k ) 开发语言。早期p h p 官方并没有正式地推出p h p 的官方框 架。现在的p h p 开发框架大多是受r o r ( r u b y o nr a i l s ,r u b y 语言的w e b 开发 框架) 的影响而催生,其中常见的框架包括:z e n d f r a m e w o r k 、c a k e p h p 、s y m f o n y 、 f l e a p h p 等【9 】。在r o r 流行之前,p h p 开发领域也有不少开发框架,但由于当 时技术的限制,以及p h p 的使用范围和影响很有限,这些框架都没有得到大量 应用,最终归于沉寂。 人们使用p h p 开发框架的目的是为了系统化p h p 程序的开发过程,提高开 发效率和开发质量。虽然新一代的p h p 开发框架发展很迅速,但同时也存在一 些问题,比如架构晦涩难懂、性能糟糕、使用中受到过多的限制。这些p h p 开 发框架既有国外的,也有国内的,很多p h p 开发框架的开发设计初衷都是以满 足各自的开发需求为目的,采用和实现的技术和理念也各不相同,带有一定的针 对性和目的性,后来为了推行各自的框架或者因为其他各种各样的原因,又盲目 地引进了大量甚至有争议的技术,从而使框架越来越臃肿,甚至丧失了p h p 原 第一章绪论 有的特色,也违背了设计和使用框架的初衷。 同时现有的一些p h p 开发框架还缺乏必要的工具和文档等支持。丰富的文 档支持是程序开发人员能否掌握开发框架的重要因素,缺乏必要的工具和文档的 支持,也是导致p h p 开发框架没能得到广泛应用的关键因素之一。 虽然由于以上的种种原因,到目前为止,在p h p 开发框架的设计和开发上 还没有形成统一标准或理论,但是程序开发人员选择或开发的p h p 开发框架都 应具有以下的基本特点: 1 、数据库无关性 开发p h p 应用程序时,在项目开发的初期阶段,由于预算和用户数量较少 等原因,会先选择轻便的小型的数据库( 例如m y s q l 等) 。随着项目的投入运 行和用户的逐渐增多,原来设计使用的数据库将无法满足程序运行的需要。因此 需要对系统的数据库进行扩充升级,或使用更高效的大型数据库( 例如o r a c l e 等) 。如果是采用传统的p h p 开发方式,由于p h p 中每种数据库的操作代码都 不一样,将需要对原来的p h p 程序代码进行大量的修改或重新的编写。 因此需要框架能够具有数据库抽象功能,当需要进行数据库迁移和改变时, 只需通过简单的修改或配置就能很容易地实现和满足要求。 2 、界面无关性 对于一些网站来说,它们的功能和结构并不需要经常地改变,但界面却需要 经常性地更新和重新设计,以适应发展的需要和吸引更多的用户浏览。传统的 p 肿开发中,界面和程序代码没有分离,一般的开发过程是先由美工设计人员设 计制造好相关页面,然后交由p h p 开发人员进行相应的代码编写和页面调整。 在这种开发模式下,如果界面需要修改,p h p 开发人员需要做的仅仅只是跟随页 面的修改而调整少量的代码,真正需要代码开发和重新编写的工作很少,甚至没 有。 因此需要框架能够把界面和代码分离开,当界面需要更改时,只需美工设计 人员重新设计制作相应的界面,而不需要p h p 开发人员的介入和参与。这样将 能大大地减少重复性的劳动和人员的分配。使项目程序的开发更规范和高效。 3 、易学易使用 框架本身的目的就是为了使p h p 开发更简单、更高效。人们不希望框架需 要太多时间的学习或专门的培训,更不希望因为框架的使用,而影响到程序的运 行速度和效率等。因此需要框架能够尽量保留和提升p h p 语言的优点和强势, 尽可能使p h p 开发人员经过简单地了解和接触就能熟练地掌握和使用框架,同 时框架还应充分考虑到使用者已有的开发设计经验和技术。 为了平衡框架的能力和使用的难易程度,经常采用的方法是封装细节,对那 6 第一章绪论 些具有一定共性的细节进行抽象,以模块的方式提供选择和使用,这样框架提供 给程序开发人员的将是高层次的接口,这些接口既掩藏了具体的细节,又在不牺 牲总体能力的基础上降低了掌握难度,同时程序开发人员仍然可以对细节进行修 改以满足特殊的要求。 4 、有效而规范 框架既要能够始终保证项目和程序正常、高效地开发和运作,还要保证程序 开发的规范有序。一个框架开发的p h p 程序代码如果缺乏规范和条理,那将是 一个失败的产品,将直接影响到以后p h p 程序的使用和修改。同时框架需要能 够确实有效地提高程序开发效率,如果在使用开发框架后,程序开发人员仍然需 要大量、重复的编码工作,那框架的效果也将大打折扣。 因此要求框架能够组织、协调和改善团队开发的过程,同时也要求框架开发 的p h p 程序代码和文件能够规范,并能容易、清晰地被理解和传递。 p h p 开发框架的发展一直处于分散而跌撞的状态。随着w e b 应用开发技术 和工具的飞速发展,以及p h p 自身的不断完善改进,这方面还需要不断地探索 和总结。目前设计和实现框架的主要原则是选择或开发合适自己的p h p 开发框 架,只有适合自己才是有效的框架,才能真正地提高p h p 程序的开发效率和开 发质量。 1 5 本人的主要工作 通过对当前的p 胛开发模式和技术进行了研究与探讨,本人认为只有充分利 用p h p 语言本身的优势,开发使用合适自己的p h p 开发框架,才能真正让p h p 开发变得更简单、更高效。 结合以往的p i - i p 开发实践经验,本人设计并实现了一个基于代码收集、组 织和管理的p h p 开发框架,该框架由交互单元、核心单元和库单元三大部分组 成,采用结构化的方式组织项目开发过程中的代码和文件,支持多个团队的并行 开发,具有自我学习能力。同时还在框架中整合了现有的许多功能模块和w e b 应用开发技术,主要包括模板技术、a j a x 技术、数据操作抽象、校验过滤等, 提供了p h p 开发中所需的各种扩展模块和详细的文档支持。 框架结构轻巧、使用简便,有效地降低了p h p 开发的难度,提高了p h p 程 序的开发效率、可靠性、可维护性和可扩展性。除非特殊说明,否则以下本文中 所提到的框架均指本人实现的该p i - i p 开发框架。 7 第一章绪论 1 6 本文的组织结构 本文第二章讨论的是框架的结构设计,主要包括框架的整体组织、文件结构 和运作流程,并讨论了框架的几种开发架构。第三章对框架的具体实现进行了讨 论,主要包括程序开发时的编程方式、使用平台以及一些相关的p h p 开发技术, 同时还会涉及到一些高级功能的应用扩展。第四章用一个实际的p h p 开发项目 来说明框架在程序开发中的具体应用和作用。第五章对框架进行了总结,并对今 后框架的改进方向进行了展望。 8 第二章框架的结构设计 2 1 框架的组织 2 1 1 框架整体 第二章框架的结构设计 p h p 开发人员在长期的程序开发过程中,会不断地接触和使用到大量的现有 代码和产品,同时自己也会开发了一系列新的程序代码和功能模块,如何充分有 效地利用和管理这些丰富的资源,将是框架设计的一个重点。因此构建框架的一 个出发点就在于实现p h p 代码的收集、组织和管理。通过框架来实现现有p h p 资源的充分和有效利用,并为以后的p h p 程序和项目开发提供相应的帮助和解 决方案。 针对上面提到的框架设计出发点,框架组织的实现将主要包括三大单元模 块,同时框架的运作还需要一些相应的平台和扩展模块的支持。 这三大组成单元模块包括:交互单元、核心单元和库单元。平台主要指p h p 开发环境和p h p 运行环境,包括开发工具、操作系统、w e b 服务器和数据库等, 扩展主要包括支持优化工具、调试工具和第三方组件等。 图2 - 1 框架的组织层次 框架的组织和层次如图2 1 所示。系统的核心单元和库单元由框架本身提供, 它们实现对现有p h p 代码资源的收集、组织和管理,并提供丰富的接口和使用 9 第二章框架的结构设计 文档给p h p 开发人员。核心单元和库单元可以对程序开发人员透明,程序开发 人员可以不必理解其中的运行、组织和管理情况,只需根据框架提供的接口和使 用文档,即可以完成程序的控制和运行。 对于p h p 开发人员来说,所需要关注的主要是框架的交互单元。在框架中, p h p 开发人员负责编写相应的交互单元代码,完成和用户以及与外部支持的交互 及反馈,例如接收用户的请求,验证用户的身份,从数据库存取数据资料,显示 信息反馈给用户等等。 程序开发人员还可以通过配置文件来指导和控制框架的运行,或者给程序预 留扩展接口,或者设置相应项目信息( 可以实现多项目的并行开发) 。 2 1 2 交互单元 交互单元是p h p 程序和用户交互的接口,也是框架系统与外部的接口,所 有的用户请求和输入信息都是通过交互单元传入框架,系统的扩展支持等也是通 过交互单元来实现。同时框架系统也是通过交互单元完成与外部环境的数据传 输、存储等,并将相应的反馈信息返回给用户,完成整个操作交互流程。 在整个框架中,交互单元也是p h p 开发人员唯一需要设计和编码实现的地 方,p h p 开发人员将只需通过编写修改交互单元的代码,整合利用核心单元提供 的接口,即可以完成p h p 程序项目的开发。 2 1 3 核心单元 核心单元是框架的最主要组成部分,将直接关系到框架的整体运行和效率。 用户通过交互单元和框架完成互动交流后,框架内部将由核心单元完成库单元模 块( 包括函数、类等) 的提取、分析和调用,并完成相应的模块功能,例如信息 处理、权限控制、安全认证等。通过核心单元模块,实现了对库单元的管理和操 作,使之对于用户和p h p 开发人员来说都是透明的。对于用户和p h p 开发人员 来说,他们都可以不用了解和掌握核心单元的具体操作和工作流程。p h p 开发人 员只需根据使用文档,调用框架提供的丰富的接口,即可以完成项目所需的各种 功能。对于用户而言,核心单元处于系统的内部和底层,他们甚至不知道它的存 在。 核心单元也可以根据具体的需要进行相应的修改和完善,例如为了保持整个 项目的开发编码风格,p h p 开发人员可以对一些核心单元的接口进行二次包装。 但是为了避免给已有程序和其他程序开发人员的开发带来麻烦和困惑,核心单元 提供的接口需要遵循一定的规范和约定,同时提供尽可能详细的使用文档和帮 助。 1 0 第二章框架的结构设计 2 1 4 库单元 库单元是框架的“仓库”部分,主要用于存储现有的代码、模块和工具等, 库单元和核心单元一样,对用户和程序开发人员完全透明,用户的所有操作和请 求将通过交互单元调用核心单元进行处理,然后由核心单元完成与库单元的互 动。甚至是p h p 开发人员都可以“无视”它的存在,因为所有对它的操作和请 求都已经通过核心单元进行了隔绝和保护。 , 库单元一般由以下两个模块组成:函数( f u n c t i o n ) 和类( c l a s s ) 。它的各 个组成模块都可以根据程序及开发的实际需要进行相应增加或删除,对于多个项 目共存以及并行开发的情况,库单元还允许共享和复制。同时程序开发人员在发 布项目产品的同时,也可以对库单元进行适当的精简,以达到减小占用空间的目 的,这对于一些硬盘空间资源有限的用户将会很适用。 库单元还有一个最主要的特点:它是一个能够不断学习和改进的组织。它能 够随着技术的发展和程序开发的进行,不断增加新的代码模块,用以丰富自身的 内容,增强自身的功能,整个过程就类似于人们学习和掌握知识的过程。同时学 习和改进后的库单元不但对当前的项目开发起到积极的作用,同时也能被应用到 以后的项目程序开发中。 p h p 遵循开源协议,是在自由开放的环境中诞生和成长的一门语言。在世界 各个地方,有成千上万的p h p 开发人员,他们一直在为p h p 的发展和完善而不 断努力奋斗,他们也愿意和别人分享交流自己编写的代码、模块和产品。程序开 发人员每天都可以从一些p h p 网站社区、邮件列表和新闻组中学习和发现大量 的优秀的p h _ p 程序代码。这里并不是鼓励p h p 开发人员整天等着让别人为自己 编写代码,而是希望程序开发人员可以很好地利用和学习别人的程序代码,这样 不但可以节省大量的时间,还可以提升自身的开发技术和水平。 在框架中,本人利用库单元提供了这样一个机制,可以使p h p 开发人员很 容易实现对现有的代码资源进行收集、组织和管理,并晟终使整个项目程序的开 发受益。p h p 开发人员只需进行简单的代码保存、修改和配置等操作,就可以把 大量的代码、模块引入库单元中( 这也就是库单元的学习和掌握过程) 。从此在 以后的程序开发中,p h p 开发人员就可以通过核心单元透明地调用最新引入的这 些代码模块,并实现相应的功能。随着框架的发展完善,库单元“学到”的东西 会越来越多,它自身的“体积”将会越来越大,当然“本领 也会越来越大。 2 1 5 配置文件 配置文件在一定程度上只是为交互单元服务,它在框架中并不是必需的,有 第二章框架的结构设计 些简单的p h p 开发就无需通过配置文件进行设置和预扩展等,这样就可以达到 精简开发和提高效率的目的。 通过配置文件的设置,框架还可以实现多个项目的共存和并行开发,并且可 以实现项目的移植和扩展。框架允许多个p h p 项目同时并行开发,通过配置文 件的设置和设计,多个项目可以在完全互不影响的情况进行开发和并存,而且对 于项目的后期修改和发布也不会产生任何的影响。 2 2 框架的文件 2 2 1 框架文件组织 框架本身一般包括以下几个主要文件夹和文件: l 、c o m m o n 文件夹:该文件夹主要存放一些框架核心函数、公共信息和接 口等,存放的内容主要是p h p 文件,一般不再建立子文件夹。常见的公共信息 包括框架接口调用函数、流程控制函数、安全过滤函数等。 2 、f u n c t i o n 文件夹:该文件夹主要存放框架的函数模块接口,文件夹下的 每个文件都独立地表示一个函数模块接口,通过框架的核心单元调用,程序开发 人员就可以使用访问这些接口。这些文件本身或者是接口实体代码,或者是第三 方组件的接口处理函数。 3 、c l a s s 文件夹:该文件夹的功能和f u n c t i o n 文件夹的功能差不多,但存储 的则是框架的类模块接口,可以包括子文件夹,但约定每个文件夹下的类都应该 具有一定的共同性,例如都是数据库操作类等。通过框架核心单元的调用,p h p 开发人员不但可以访问c l a s s 文件夹下的这些类模块接口,还可以访问c l a s s 子 文件夹下的类模块接口。 4 、p l u g i n s 文件夹:该文件夹主要用于存储第三方组件。程序开发人员可以 直接通过框架的核心单元调用第三方组件的函数、类等信息,也可以对第三方组 件进行修改,把这些组件融入框架中,比如在f u n c t i o n 文件下增加一个函数模块 接口,通过该接口不但可以调用第三方组件,还可以进行一定配置。通过第三方 组件的引入和使用,核心单元可以对外提供更为丰富而有效的接口。 5 、h u t e r p h p 文件:这是框架的运行核心,可以对框架项目的运行进行必须 的初始化。 6 、c o n f i g p h p 文件:这是框架的配置文件,主要是框架的配置信息,包括 框架的各个目录名称,版本信息等。 1 2 第二章框架的结构设计 2 2 2 扩充文件组织 另外根据开发对象不同,框架还可以包括以下文件和文件夹: l 、w e b 文件夹:具体的项目开发文件夹,该文件夹下是完整的项目程序文 件,至于文件夹的名字可以随着实际开发对象而变化,并同时允许多个项目共存。 例如在框架中同时开发多个项目w e b l ,w 曲2 等,则会对应地存在w e b l ,w e b 2 等文件夹。 2 、c a c h e 文件夹:该文件夹存储的是一些系统程序的缓存信息,包括临时 文件等。 a o r i d o 毫d 【= 2 2 3 项目文件组织 c l 目l = = 固i 移b 图2 2 框架文件组织 曰一咄 曰 固慧雄 在具体的项目开发文件夹下,则可以进行较随意地组织文件,但一般需要注 意p h p 代码、h t m l 模板、j a v a s c r i p t 脚本、c s s 样式、图片文件和配置文件等 的分离存放。这样不但使项目的文件组织有序规范,还利于以后的项目修改和扩 展。 根据框架中文件夹的不同功能,可以对框架组织进行分级,形成了一个金字 塔形的结构。如图2 3 所示,框架本身处于金字塔的最底层,支撑着所有的项目。 框架的上一级是项目,各个项目之间相互独立、互不影响。项目所在的上一级是 项目的具体实现文件,这些文件组成了一个个实实在在的页面,并完成了相应的 功能。 1 3 囝目 囝囝目 第二章框架的结构设计 回固囡 2 3 框架的运作 2 3 1 框架的整体运作流程 圈2 - 3 项目文件组织 首先,用户发出浏览请求系统接收到请求确切的说是w e b 服务器收到 用户请求,解析该请求后调用框架的交互单元,这里可以简单地理解成框架的交 互单元接收到了用户的请求。接着框架的交互单元开始对该请求进行解析和过 滤,以及一些安全或全局的处理。并根据解析的结果和系统的配置信息调用相应 的过程模块( 属于交互单元的子模块) 。 在过程模块中,它将使用框架提供的核心单元接口,并通过接口调用库单元, 进行实际的操作,包括对逻辑的处理、数据库信息的存储和读取等。最后过程模 块还会将操作的结果通过交互单元的其他子模块或直接反馈给用户。整个流程如 图2 - 4 所示。 l 配置文件i 接心单元库单元 图2 4 框架运作流程 第二章框架的结构设计 2 3 2 从程序用户的角度 对于程序用户( 例如网页浏览者) 来说,他们面临和接触的将是完成后并处 于运行状态的项目系统( 例如网站的页面) 。因此框架的任何组成和分层对于他 们来说都是透明的,对于他们来说,系统只需能够满足获取信息和发布信息的要 求就行,至于系统本身是怎么实现和完成功能,他们无从了解也并不太关心。 同时对于程序用户来说,他们对系统和框架所能做的是产生一个个浏览请 求,他们所能得到的将是一个个带有数据信息的页面或提示。 2 3 3 从开发人员的角度 对于p h p 开发人员来说,他们将更多地和框架打交道。对于他们来说,面 临的最主要任务将是如何利用框架核心单元提供的接口,设计开发有效的交互单 元,并保证整个项目的按期完成和系统的正常运作。通过框架提供的接口,核心 单元和库单元的互动则将对程序开发人员透明。 因此对于一般的程序开发,p h p 开发人员也可以在不了解框架内部结构的情 况下开发完成相应的产品。因为框架提供给他们丰富的接口和文档,足够满足程 序开发的需要。 程序开发人员需要完成的工作主要包括:交互单元的代码编写( 包括同其他 程序开发人员的交互以及美工设计人员的页面设计和模板制作等) ,外部环境平 台的搭建和设计( 包括数据库的设计等) ,以及配置文件的设计和修改。同时还 涉及到框架自身的维护、修改和开发等,以完成框架的学习和掌握过程,例如给 库单元增加相应的模块和代码等。 2 3 4 框架的接口 库单元中的组件可以是直接的函数( 过程) 模块,也可以是封装后的类模块。 根据需要,核心单元在对外提供接口时可以进行相应的修改和调整。可以把函数 模块以类的形式提供接口,也可以把类模块以函数的形式提供接口,还可以对于 同一个模块同时
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 数字媒体在塑造消费主义态度中的作用-洞察及研究
- 神牡安神胶囊对α-受体能的调控机制研究-洞察及研究
- 2025-2030工业元宇宙虚拟工厂建设标准与降本增效实证分析报告
- 2025-2030工业元宇宙平台功能模块开发优先级与生态伙伴选择策略
- 2025-2030工业互联网平台标准化进程与垂直行业解决方案市场预测
- 2025-2030工业互联网平台标准化建设与生态投资价值研究报告
- 2025-2030工业互联网平台服务标准化建设与行业渗透率预测报告
- 2025-2030工业互联网平台商业模式创新与制造业转型升级路径研究报告
- 2025-2030工业云计算边缘节点设备可靠性提升技术路径报告
- 2025-2030工业5G专网部署模式与垂直行业适配性研究
- HPV科普讲堂课件
- 港口设施保安培训知识课件
- 2025年遂宁社区专职工作人员招聘考试笔试试题含答案
- 电梯维护保养标准作业指导书
- 新闻采编业务知识培训课件
- 湘艺版音乐五年级上册第二课 我们是工农子弟兵 军队和老百姓 课件(内嵌音视频)
- 互感器的课件
- 食堂卫生管理与食品安全手册
- 交付能力管理办法
- GB/T 29024.3-2025粒度分析单颗粒的光学测量方法第3部分:光阻法液体颗粒计数器
- 肾病尿毒症健康宣教
评论
0/150
提交评论