ImageVerifierCode 换一换
格式:DOCX , 页数:51 ,大小:1.64MB ,
资源ID:28961266      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/28961266.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言实现PHP框架毕业设计论文.docx)为本站会员(b****9)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言实现PHP框架毕业设计论文.docx

1、C语言实现PHP框架毕业设计论文C语言实现PHP框架毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作 者 签 名: 日 期: 指导教师签名: 日期: 使用授权说明本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和

2、电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期: 学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名: 日期: 年 月 日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学

3、位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名: 日期: 年 月 日导师签名: 日期: 年 月 日注 意 事 项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词 5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求:

4、理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。3.附件包括:任务书、开题报告、外文译文、译文原文(复印件)。4.文字、图表要求:1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画3)毕业论文须用A4单面打印,论文50页以上的双面打印4)图表应绘制于无格子的页面上5)软件工程类课题应有程序清单,并提供电子文档5.装订顺序1)设计(论文)2)附件:按照任

5、务书、开题报告、外文译文、译文原文(复印件)次序装订指导教师评阅书指导教师评价:一、撰写(设计)过程1、学生在论文(设计)过程中的治学态度、工作精神 优 良 中 及格 不及格2、学生掌握专业知识、技能的扎实程度 优 良 中 及格 不及格3、学生综合运用所学知识和专业技能分析和解决问题的能力 优 良 中 及格 不及格4、研究方法的科学性;技术线路的可行性;设计方案的合理性 优 良 中 及格 不及格5、完成毕业论文(设计)期间的出勤情况 优 良 中 及格 不及格二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范? 优 良 中 及格 不及格2、是否完成指定的论文(设计)任务(包括装订及附

6、件)? 优 良 中 及格 不及格三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义 优 良 中 及格 不及格2、论文的观念是否有新意?设计是否有创意? 优 良 中 及格 不及格3、论文(设计说明书)所体现的整体水平 优 良 中 及格 不及格建议成绩: 优 良 中 及格 不及格(在所选等级前的内画“”)指导教师: (签名) 单位: (盖章)年 月 日评阅教师评阅书评阅教师评价:一、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范? 优 良 中 及格 不及格2、是否完成指定的论文(设计)任务(包括装订及附件)? 优 良 中 及格 不及格二、论文(设计)水平1、论文(

7、设计)的理论意义或对解决实际问题的指导意义 优 良 中 及格 不及格2、论文的观念是否有新意?设计是否有创意? 优 良 中 及格 不及格3、论文(设计说明书)所体现的整体水平 优 良 中 及格 不及格建议成绩: 优 良 中 及格 不及格(在所选等级前的内画“”)评阅教师: (签名) 单位: (盖章)年 月 日教研室(或答辩小组)及教学系意见教研室(或答辩小组)评价:一、答辩过程1、毕业论文(设计)的基本要点和见解的叙述情况 优 良 中 及格 不及格2、对答辩问题的反应、理解、表达情况 优 良 中 及格 不及格3、学生答辩过程中的精神状态 优 良 中 及格 不及格二、论文(设计)质量1、论文(设

8、计)的整体结构是否符合撰写规范? 优 良 中 及格 不及格2、是否完成指定的论文(设计)任务(包括装订及附件)? 优 良 中 及格 不及格三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义 优 良 中 及格 不及格2、论文的观念是否有新意?设计是否有创意? 优 良 中 及格 不及格3、论文(设计说明书)所体现的整体水平 优 良 中 及格 不及格评定成绩: 优 良 中 及格 不及格教研室主任(或答辩小组组长): (签名)年 月 日教学系意见:系主任: (签名)年 月 日摘 要本课题通过研究国内外流行的PHP框架及对其工作原理的分析,找出了PHP站点性能的瓶颈所在。针对找到的

9、问题,本课题以C为开发语言,使用PHP底层的Zend API,设计并实现了MVC程序框架,有效提高了PHP站点的性能。并通过开发一套基于此框架的个人Blog系统,验证其可行性和有效性。设计中第一部分是绪论,讨论了本课题的意义,以及PHP技术的发展前景;第二部分是系统分析,探讨了PHP的工作原理与及存在的性能问题,同时介绍了MVC结构的概念与优缺点;第三部分是总体设计,明确了框架的功能结构和实现必要性,设计了Blog的功能与数据库结构;第四部分是详细设计,主要讲述了框架的运行流程与几个主要模块的实现方式,以及Blog各层的实现方式;最后是测试,验证了Blog的功能和框架的性能。 关键词:框架 M

10、VC Zend接口 PHP 性能The PHP Framework implemented by C LanguageABSTRACT This project is aimed to find out the bottleneck of the performance of the PHP site by analysing the popular PHP framework and its working principle. This project is based on C language and the Zend API of PHP, which effectively imp

11、roved the performance of PHP site. And then verify the feasibility and effectiveness of this project by developing a Personal Blog System which based on this framework.The first chapter of this article is an introduction which introduces the meaning of this issue and the development prospects of PHP

12、 technology. The second chapter is about system analysing, which explains the working principle and life cycle of PHP. In the mean time, the second chapter also introduces the conception, strengths and weakness of MVC structure. The third chapter is mainly about the overall design of this project, w

13、hich clears the functional structure of this framework. Besides, the third chapter designs the function and database structure of the Blog. The fourth chapter is mainly about the detailed design, which explains the running processes of this framework and the function of several main modules. The fou

14、rth chapter explains the realization of this Blog as well. The final part of the article is mainly about system test, which verify the function of this Blog and the performance of the framework. Key words: Framework MVC ZendAPI PHP Performance第一章 绪论1.1 系统开发背景21世纪的今天,网络在人们生活中已经日益盛行,越来越多人已经离不开网络。人们已经不

15、再满足于了解最新信息、查找资料等一些传统的网络使用方式,而是过渡到娱乐、购物等新兴的网民生活。网上娱乐,成了当今广大群众的时尚。客户也通过博客把自己喜欢的东西写出来或是和别人一起分享那份快乐。因此,博客已成为个人、公司、部门和团队之间越来越盛行的交流沟通工具。在此,为了方便网络用户的需求,我们专门构建个人博客系统。而因为传统PHP框架开发的系统在性能上有所限制,在日益增长的用户量上捉襟见肘,所以,此次设计采用C语言是实现PHP框架。1.2 国内外研究现状随着Ruby on Rails的火爆,PHP这个流行的Web应用脚本语言也出现了大量的新一代开发框架。与此同时,国内PHP开发者也开始紧跟国外

16、发展,推出了不同的开发框架。在RoR流行之前,PHP领域也有不少开发框架,例如Mojavi、WACT、PHPMvc和Seagull等。这些框架虽然也采用了MVC模式、数据库抽象层等技术。但由于当时PHP本身不像现在这样流行,所以这些框架都没有得到大量应用,最终归于沉寂。而在感受到RoR提供的快速开发能力后,PHP社区像被注入了兴奋剂。各种应用技术和开发框架层出不穷。PHP社区在被RoR震晕后,没有陷入过多的争论。而是立即行动起来,开始了新一代框架的设计。首先出现的第一批框架几乎都是RoR的克隆。例如PHP on Trax(连名字都借鉴Ruby on Rails)和TaniPHP、Akelos等

17、。这些框架最大的特点就是力求100克隆RoR,不管是采用的架构、设计模式,还是使用方法。这几个框架一开始确实吸引了开发者的注意,但随着开发者的深入了解,这些框架头上的光环逐步褪色。晦涩难懂的架构、糟糕的性能,以及太多的限制,让这些框架难以在实际项目中运用。此时,许多PHP开发者认为可以借鉴RoR的设计思想,但不应照搬RoR的结构和实现。为此,一些同样推崇快速开发的框架开始在PHP社区出现。这些框架中,CakePHP和Symfony可谓佼佼者。CakePHP充满了RoR的影子,从ActiveRecord模式到视图的布局管理都和RoR非常相似。而且CakePHP一开始也尝试实现与 RoR一样的许多

18、东西。但CakePHP的开发团队后来发现PHP语言和Ruby语言存在巨大区别,因此RoR中的许多设计即便能够在PHP中实现,也是缺乏实用价值的。CakePHP在发展中逐步走出了RoR的阴影,开始探索更能发挥PHP语言本身优势的架构和实现。因此有一段时间CakePHP的API发生了剧烈的变化,以致其他开发者纷纷停下脚步处于观望状态。但由于前期一些架构的不合理和对RoR太多的模仿,导致CakePHP的核心部分越来越难以理解,运行性能也不尽人意。而且CakePHP将一个庞大的数据库操作对象作为所有业务对象的基础。这虽然利于快速开发,但却导致对业务逻辑对象的测试非常困难。Symfony是一个非常成熟的

19、框架,大量利用了已有的开源项目。Symfony使用Mojavi的核心代码实现了框架的MVC模式,利用 Propel作为数据库抽象层。Symfony不仅功能强大,而且对Ajax有全面的支持。加上官方网站提供的大量文档和教程,并拥有一个活跃的社区,因此受到许多开发者的欢迎。但是,Symfony最大的问题也在于使用了太多风格迥异的开源项目来组合成框架。由于Mojavi和Propel本身都相当复杂,因此Symfony的结构非常复杂,难以理解和学习。不过对于希望选择一个框架作为企业内部系统基础架构的企业来说,Symfony的成熟度、丰富的文档和活跃的社区都是值得考虑的。毕竟企业内部系统更为看重的是稳定性

20、和长期的支持。着技术对游戏经验的促进,游戏市场持续增长,商业IT革命为我们节省了时间和金钱,从而提。2011年,中国唯一一位PHP开发组成员,惠新宸,在自己的blog公布了自己基于C语言开发的php框架yaf。很快,yaf以其独特的开发方式,极高的性能引起了全世界PHP开发社区的关注,甚至PHP的创始人亦在论坛中留贴表示关注。目前为止,yaf还在不断开发中,但已成为PHP社区中最受瞩目的项目。本次课题亦是根据此思路开发。1.3 本课题研究的内容和方法本课题要求设计并实现基于C语言的PHP框架。现今国际上已经有很多PHP框架,但大都基于php开发,在效率方面必然有所限制。PHP本身即为C语言开发

21、,而且已有许多成熟的扩展可以借鉴,所以用C语言开发PHP框架有着独特的优势。对系统的开发流程模式基本上采用瀑布模型,首先,做了系统分析;然后,对系统进行了总体设计以及详细设计,最后对系统做了验证性的测试。现在对于Linux下的C语言开发,普遍采用vim作为编译器,make,gcc作为编译工具。用siege作为web站点性能调试工具。1.4 本课题实现的意义使用C语言开发PHP框架,极大的提升了PHP的性能,扩展了PHP的使用范围,使其能力大大提升。也为web站点高性能扩展提供了全新的思路,解决了在CPU密集型的web应用中php zend引擎性能不足的弱点,对整个web开发界带来了极大地改变。

22、第二章 系统分析2.1 PHP程序概述2.1.1 PHP简介 PHP(PHP:Hypertext Preprocessor)是一种在电脑上执行的脚本语言,主要用途是在于处理动态网页,也包含了命令行执行接口,或者产生图形用户界面程式。PHP的应用范围相当广泛,尤其是在网页程式的开发上。一般来说PHP大多执行在网页服务器上,透过执行PHP代码来产生使用者浏览的网页。PHP可以在多数的服务器和操作系统上执行,而且使用PHP完全是免费的。根据2007年4月的统计资料,PHP已经被安装在超过2000万个网站和100万台服务器上1。2.1.2 PHP的生命周期PHP脚本通过SAPI与宿主通信,常见的方式有

23、单进程,多进程,多线程模式,还有一种Embed SAPI2。无论通过哪种SAPI运行PHP都经过下面几个阶段:1. 模块初始化阶段(Module init)即调用每个拓展源码中的的PHP_MINIT_FUNCTION中的方法初始化模块,进行一些模块所需变量的申请,内存分配等。2. 请求初始化阶段(Request init),即接受到客户端的请求后调用每个扩展的PHP_RINIT_FUNCTION中的方法,初始化PHP脚本的执行环境。3. 执行PHP脚本。4. 请求结束(Request Shutdown),这时候ZE开始回收变量和内存,并且调用每个扩展的PHP_RSHUTDOWN_FUNCTIO

24、N方法清理请求现场。5. 关闭模块(Module shutdown)Web服务器退出或者命令行脚本执行完毕退出会调用拓展源码中的PHP_MSHUTDOWN_FUNCTION 方法3 。2.1.3 PHP与服务器的关系PHP的所有应用程序都是通过WEB服务器和PHP引擎程序解释执行完成的4工作过程如下:当用户在浏览器地址中输入要访问的PHP页面文件名,然后回车就会触发这个PHP请求,并将请求传送化支持PHP的WEB服务器。WEB服务器接受这个请求,并根据其后缀进行判断如果是一个PHP请求,WEB服务器从硬盘或内存中取出用户要访问的PHP应用程序,并将其发送给PHP引擎程序5PHP引擎程序将会对W

25、EB服务器传送过来的文件从头到尾进行扫描并根据命令从后台读取,处理数据,并动态地生成相应的HTML页面。PHP引擎将生成HTML页面返回给WEB服务器。WEB服务器再将HTML页面返回给客户端浏览器。1.1 2.2 PHP性能2.2.1 PHP对性能的优化作为世界上使用率最高的Web开发语言,PHP内部有很多对性能的优化处理。以下为对性能有较大提升的处理:1.内存管理类似Nginx的内存管理方式,PHP在内部也是基于内存池,并且引入内存池的生命周期概念。在内存池方面,PHP对PHP脚本和扩展的所有内存相关操作都进行了托管,对大内存和小内存的管理采用了不同的实现方式和优化。2.变量PHP对与变量

26、的处理做了大量的优化,比如说Reference counting和copy on writer机制。这样能够保证内存使用上的优化,并且减少内存拷贝次数。3.HashTablePHP的Hash采用的是目前最为普遍的DJBX33A (Daniel J. Bernstein, Times 33 with Addition), 这个算法被广泛运用与多个软件项目,Apache, Perl和Berkeley DB等. 对于字符串而言这是目前所知道的最好的哈希算法,原因在于该算法的速度非常快,而且分类非常好(冲突小,分布均匀)。从上面的几个分析来看,PHP在内存管理、变量、哈希等几个方面都做了大量的工作,所

27、以从原理来看,PHP不应该存在性能问题,性能至少也应该和Java比较接近。2.2.2 PHP性能的瓶颈虽然PHP对性能做出了以上优化,但PHP作为脚本语言的本质没有改变,所以有两个问题成为了PHP性能的瓶颈所在:每次请求时的编译以及动态运行机制。众所周知,按编程语言的类型分类,C/C+是编译型,JAVA是半编译型,PHP是解释型。也就是说PHP是先动态解析再代码运行的,PHP的运行机制如图2.1:PHP的运行阶段也分成三个阶段:1. Parse:语法分析阶段。2. Compile:编译产出opcode中间码。3. Execute:运行,动态运行进行输出。所以说,在PHP内部,每次运行脚本,都会

28、重新进行编译的过程,极大地降低性能。影响PHP效率的还有动态运行机制。由于PHP是动态运行时,所以所有的变量、函数、对象调用、作用域实现等等都是在执行阶段中才确定的。这个从根本上决定了PHP性能中很难改变的一些东西:在C/C+等能够在静态编译阶段确定的变量、函数,在PHP中需要在动态运行中确定,也就决定了PHP中间码不能直接运行而需要运行在Zend Engine上。图2.1 PHP运行流程图2.2.3 解决方案面对以上几个问题,本课题决定使用C语言开发一套程序框架加以解决。原因有以下几点:1. 程序使用C语言开发,使得框架不必在每次运行时进行词法分析、语法分析。加开脚本执行速度。2. 使用C语

29、言开发,所有的变量、函数、类都是在编译阶段确定,PHP启动时被加载到内存中,可以直接运行在Zend Engine中。3. 以框架的形式供开发者使用,封装底层逻辑。可以让开发者更加关注业务逻辑,提高开发效率。2.3 MVC概述2.3.1 MVC简介MVC模式(三层架构模式)(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)6MVC模式的目的是实现一种动态的程式设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。除此之外,此模式通过对复杂度的简化,使程序

30、结构更加直观。软件系统通过对自身基本部份分离的同时也赋予了各个基本部分应有的功能。专业人员可以通过自身的专长分组。2.3.2 MVC的优点首先,多个视图能共享一个模型。如今,同一个Web应用程序会提供多种用户界面,例如用户希望既能够通过浏览器来收发电子邮件,还希望通过手机来访问电子邮箱,这就要求Web网站同时能提供Internet界面和WAP界面。在MVC设计模式中,模型响应用户请求并返回响应数据,视图负责格式化数据并把它们呈现给用户,业务逻辑和表示层分离,同一个模型可以被不同的视图重用,所以大大提高了代码的可重用性。7其次,控制器是自包含高独立内聚的物件,与模型和视图保持相对独立,所以可以方便的改变应用程序的数据层和业务规则。例如,把数据库从MySQL移植到Oracle,或者把RDBMS数据源改变成LDAP数据源,只需改变控制器即可。一旦正确地实现了控制器,不管数据来自数据库还是LDAP服务器,视图都会正确地显示它们。由于MVC模式的三个模块相互独立,改变其中一个不会影响其他两个,所以依据这种设计思想能构造良好的少互扰性的构件8。此外,控制器提高了应用程序的灵活性和可配置性9。不同的模型和视图去完成用户的需求,也可以构造应用程序提供强有力的手段。给定一些可重用的模型和视图,控制器可以根据用户

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1