基于PHP框架的社区论坛管理系统的设计与实现毕业论文.docx
《基于PHP框架的社区论坛管理系统的设计与实现毕业论文.docx》由会员分享,可在线阅读,更多相关《基于PHP框架的社区论坛管理系统的设计与实现毕业论文.docx(37页珍藏版)》请在冰豆网上搜索。
基于PHP框架的社区论坛管理系统的设计与实现毕业论文
密级:
基于PHP框架的社区论坛管理系统的设计与实现
ResearchPhpBBSForumManagementSystemBasedonYiiFramework矚慫润厲钐瘗睞枥庑赖。
摘要
社区论坛管理系统是互联网上的一种电子信息服务系统。
每个用户都可以在在论坛上提出自己的想法。
近些年来,通过编程人员和很多爱好者的努力,BBS论坛的功能得到了很大的扩充。
而如今的BBS论坛系统功能更丰富,允许用户之间分享工具软件,技术文档等资源。
如何设计稳定的BBS系统,是每个开发人员必须要考虑的问题,一个成功的BBS系统可大大提高承载此论坛的网站点击率,为了使一个论坛系统发挥更大的作用,使企业的用户加入到产品、服务等内容的讨论上来,对企业的发展有很好的促进作用。
聞創沟燴鐺險爱氇谴净。
论文介绍了课题研究的背景和意义及国内外发展状况,详细介绍了课题采用的相关技术。
结合用户业务基本要求,进行了详细的分析研究,确定该系统主要功能包括七大模块:
个人用户管理功能、论坛内容展示功能、会员管理与维护功能、分区管理与维护功能、板块管理与维护功能、文章管理功能和回帖管理功能。
本文较为详尽的阐述了主要功能模块的实现过程。
残骛楼諍锩瀨濟溆塹籟。
本系统使用ZendStudio集成开发环境编写,并使用基于MVC模式的Yii框架技术进行开发。
利用Sphinx全文检索引擎实现文章搜索。
系统前台数据采用文件缓存和Memcache缓存技术,可以大大提高用户体验。
后台数据库使用甲骨文公司的Mysql数据库,利用SQLyog实现对数据库的管理和操作。
在以面向对象的程序设计技术为指导思想的前提下,完成了本系统的具体实现过程。
系统解决了大访问量下对网站的压力,对使用该系统的企业发展有很好的辅助作用。
酽锕极額閉镇桧猪訣锥。
关键词:
论坛管理系统;全文检索;Sphinx;Memcache;Mysql
Abstract
CommunityCommunityforummanagementsystemisanelectronicinformationservicesystemontheInternet.Everyusercanputforwardhisideasintheforum.Inrecentyears,throughtheprogrammingofpersonnelandmanyenthusiasts,thefunctionoftheforumBBShasbeengreatlyexpanded.Andtoday'sBBSforumsystemfeaturesricher,allowinguserstosharebetweenthetoolsandsoftware,technicaldocumentationandotherresources.HowtodesignthestabilityoftheBBSsystem,eachdevelopermustconsidertheproblem,asuccessfulBBSsystemcangreatlyimprovethebearingofthisforumwebsiteclickrate,inordertomakeaforumsystemplayagreaterrole,theenterpriseuseraddedtotheproducts,services,andothercontentarediscussed,thedevelopmentofenterpriseshasagoodroleinpromoting.彈贸摄尔霁毙攬砖卤庑。
Thispaperintroducesthebackgroundandsignificanceoftheresearchandthedevelopmentofthedomesticandforeign,andintroducesthetechnologyofthesubject..Combinedwiththebusinessusersbasicrequirements,detailedanalysisandresearch,identifysevenmodules:
individualusermanagementfunction,thecontentoftheForumdisplayfunction,membermanagementandmaintenancefunctions,partitionmanagementandmaintenancefunctions,sectormanagementandmaintenancefunctions,articlemanagementfunctionandrepliesmanagementfunction,includingthemainfunctionofthesystem.Thispaperexpoundstherealizationofthemainfunctionmodulesindetail..謀荞抟箧飆鐸怼类蒋薔。
ThissystemusesStudioZendintegrateddevelopmentenvironment,andusestheYiiframeworktechnologybasedonMVCmodetodevelop.UseSphinxfull-textsearchenginetoachievethearticlesearch.SystemforegrounddatausingfilecachingandMemcachecachingtechnologycangreatlyimprovetheuserexperience.DatabaseusingtheOracleCorpMysqldatabase,usingSQLyogtoachievethedatabasemanagementandoperation.Inthepremiseoftheobjectorientedprogrammingtechnology,theconcreterealizationofthesystemiscompleted..Thesystemhassolvedthepressureofthewebsiteunderthelargeamountofvisit,andhasgoodassistantforthedevelopmentoftheenterprise.厦礴恳蹒骈時盡继價骚。
Keyword:
Forummanagementsystem;full-textsearch;Sphinx;Memcache;Mysql茕桢广鳓鯡选块网羈泪。
第1章引言
在现在快速发展的社会,互联网技术得到更快的发展,已经不是日新月异就能形容的信息化世界里,更加动态性、交互性与时速性的网络论坛成为其中最快速、最丰富和最自由的网络信息资源,也是最受广大的现代人类欢迎的信息交流方式之一。
詩叁撻訥烬忧毀厉鋨骜。
1.1系统开发背景
论坛管理系统是一种对某些问题、看法互相学习的系统,论坛系统的作用在于提供给用户彼此交流的空间,这种交流的方式浏览帖子和发表帖子以及回帖。
因此对于帖子的管理是BBS系统的一个核心功能,发表帖子的权利可以只对特定的人群。
互联网上的优质资源很多,我们每天都会接触到很多不同的优质资源,比如实用的网站,有用的资讯等等,大部分网站是利用PHP语言编写[1]。
BBS是Bulletinboardsystem的缩写,中文含义是电子公告板。
它是一种交互性强,内容丰富而即使的Internet电子信息服务系统。
用户在BBS站点上可以获得各种信息服务,发布信息,进行讨论,聊天等等。
其界面一般是以文字为主,主要目的是为广大网友提供一个彼此交流的空间,其最大的优点是自由平等,快捷互动。
则鯤愜韋瘓賈晖园栋泷。
BBS最早是用来公布股市价格等类信息的,当时BBS连文件传输的功能都没有,而且只能在苹果计算机上运行。
早期的BBS与一般街头和校园内的公告板性质相同,只不过是通过电脑来传播或获得消息而已。
一直到个人计算机开始普及之后,有些人尝试将苹果计算机上的BBS转移到个人计算机上,BBS才开始渐渐普及开来。
近些年来,由于爱好者们的努力,BBS的功能得到了很大的扩充。
而如今的BBS系统功能更丰富,允许用户之间分享工具软件,技术文档等资源。
BBS论坛系统突破了地域和时间的限制,实现了全球性资源共享,有助于人们学习,工作,生活,同时提高了人们的交流信息、思想和解决问题的能力。
如何设计、建立一个经济、实用、全面、高效、稳定的BBS系统,是每个开发BBS系统的程序员必须要考虑的问题,一个成功的BBS系统可大大提高承载此论坛的网站点击率,使企业的用户加入到产品、服务等内容的讨论上来,起到收集反馈资料的作用,对企业战略的发展有很好的参考作用。
胀鏝彈奥秘孫戶孪钇賻。
1.2国内外发展状况
1.2.1国内方面
中国大陆最早的BBS站是北京长城站,由于限于互联网尚未开始普及的条件,当时用户访问量每天只有十几人。
随着计算机及其外设的大幅度降价、互联网在国内的快速发展,BBS及Forum逐渐被认识,并以惊人的速度发展起来。
大陆的BBS论坛在2000年达到一个发展顶峰,各种BBS站大量涌现,BBS论坛(续致信网上一页内容)功能不断改进,内容涉及领域几乎无所不包。
此后,由于发展的无序和管理的不善,在网络泡沫的冲击之下,很多BBS论坛迅速消亡。
之后,国内BBS论坛进入调整和成熟时期,成为现实社会的缩影。
在历次《中国互联网络发展状况统计报告》中,BBS论坛仍然是国内互联网最重要的应用之一。
多数研究者认为,BBS论坛简单,易用,实用的特点日益突出,今后BBS论坛将向个性化和专业化的方向发展。
鳃躋峽祷紉诵帮废掃減。
1.2.2国外方面
社区论坛在国外最开始主要用于BBS成员之间的信息交流与网络通讯,那时还没有浏览器、搜索引擎,甚至没有个人网站。
当时BBS主要有四项功能应用:
发布新闻、发布交易信息、发布个人感想、互动式问答。
目前在国外BBS的主要应用转移到论坛上,也就是现在为大多数人所接受的BBS概念。
因此,互联网技术的发展,使得BBS在西方国家的影响力正逐渐减小,以美国为例,绝大多数高校基本上没有开设BBS,少数BBS站的存在主要用于提出或解决问题,集中表现为技术类BBS,针对软件或商品的技术支持BBS等。
相比于人气极旺的中文BBS,它们并不存在复杂的管理机制和舆论调控行为。
在这些BBS上,注重的是发帖和回帖的就事论事,区别于中文BBS的人与人的交流。
稟虛嬪赈维哜妝扩踴粜。
国外对BBS的直接研究很少,间接的研究主要集中在对网络社会、虚拟社区方面。
如针对网络社会中的人际关系、行为方式、价值观念和社会结构等,对虚拟社区的自身特征及虚拟社区中的社会问题等进行广泛研究。
著名的研究成果有曼纽尔·卡期特的《网络社会的崛起》、霍华德·莱茵戈德的《虚拟社区》、尼尔·巴雷特的《数字化犯罪》等。
陽簍埡鲑罷規呜旧岿錟。
1.3研究内容及目标
本文主要先全面系统的分析BBS论坛管理系统的实际业务流程,然后进行模块化的设计,再然后针对实际业务中存在的难点问题提出了较好的解决方案,并对各系统功能进行了详细方案设计。
沩氣嘮戇苌鑿鑿槠谔應。
根据本系统的特点,可以将其分为前台和后台两个部分,前台主要包括用户个人管理和论坛内容展示两个部分,而后台主要包括会员管理,分区管理,板块管理,文章管理和回帖管理五个部分[2]。
预期目标,管理员和会员可以在后台添加分区及板块等,普通用户可以在前台发表及回帖,以及最后系统上线。
通过BBS论坛的方式,使用者可以在论坛上发布各项通知,可以让用户,游客能够及时准确的了解想要了解的动态,同时通过交流平台能够展示每一个用户的各种能力,发布个人对一些事物的看法,增强人与人之间,团体与团体之间,个人与团体之间的互动交流。
钡嵐縣緱虜荣产涛團蔺。
系统中的主要代码使用SublimeText3编写,主要采用的语言是PHP。
符合MVC架构[3],本网站采用现在很流行的B/S开发模式,采用Yii框架进行开发,与MySQL数据库高性能组合,完全可以满足上述功能的需求,软件界面简易,流程合理,结构清晰,满足用户视觉使用习惯。
易使用和维护等,将实施成本降到了最低。
对软件使用与实施具重要意义。
由于本系统采用PHP语言开发,代码编写符合在Linux下的编写要求。
因此可以运行在任何环境下,包括:
Windows、Linux和Unix等主流操作系统。
系统的设计以方便未来业务的扩展和系统扩充为目标,系统要求能够方便的升级,充分保护系统的投资。
懨俠劑鈍触乐鹇烬觶騮。
论坛系统的研究目标是前台对所有的数据进行展示,以及利用网络文本编辑器实现发帖和回帖。
搜索功能利用斯芬克斯检索。
后台分区、版块和文章的管理。
和该系统要完成无限分类对分区和板块的改善。
以及RBAC对权限进行分配[4]。
謾饱兗争詣繚鮐癞别瀘。
第2章
相关技术综述
本系统使用ZendTechnologies公司开发的PHP语言集成开发环境ZendStudio。
主要是使用基于MVC模式的YII框架进行开发。
后台数据库是目前属于Oracle公司的Mysql数据库。
利用Sqlyog数据库管理工具实现对数据库的管理和操作。
系统前台文章搜索功能是一个基于SQL的全文检索引擎Sphinx。
Sphinx单一索引最大可包含1亿条记录,在1千万条记录情况下的查询速度为毫秒级[5]。
系统编辑文字运用了所见即所得的开源富文本编辑器UEditor,具有轻量、可定制、用户体验优秀等特点。
呙铉們欤谦鸪饺竞荡赚。
2.1ZendStudio
ZendStudio是ZendTechnologies开发的PHP语言集成开发环境(IDE)。
也支持HTML和js标签,但只对PHP语言提供调试支持。
它包括了PHP所有必须的开发部件。
通过一整套编辑、调试、分析、优化和数据库工具,ZendStudio加速开发周期,并简化复杂的应用方案。
ZendStudio支持PHP语法加亮显示,支持语法自动填充功能,支持书签功能,支持语法自动缩排和代码复制功能,内置一个强大的PHP代码调试工具,支持本地和远程两种调试模式,支持多种高级调试功能[6]。
莹谐龌蕲賞组靄绉嚴减。
ZendStudio可以在Linux、Windows、MacOSX上运行。
ZendStudio的强大之处,除了一般编辑器所具有的代码高亮,语法自动缩进,书签功能外,它内置的调试器更是无可挑剔,支持本地和远程(debugserver)两种调试模式,支持诸如跟踪变量、单步运行、断点、堆栈信息、函数调用、查看实时输出等多种高级调试功能。
通过完全的PHP5支持、编码分析器、编码组合功能、语法检索、项目管理器、编码编辑器、绘图调试器(向导)。
超强智能编码:
具备新的和更优秀的分析和优化工具像PHP编码检测器,。
PHP的标准记录工具--PHP文档记录器:
非常容易记录PHP代码、程序应用和方案。
FTP和SFTP组合简化配置,使开发者安全地从远程服务器灵活的上载和下载项目文件。
麸肃鹏镟轿騍镣缚縟糶。
2.2Yii框架
Yii是一个基于组件的高性能PHP框架,用于开发大型Web应用。
Yii采用严格的OOP编写,并有着完善的库引用以及全面的教程。
从MVC,DAO/ActiveRecord,widgets,caching,等级式RBAC,Web服务,到主题化,I18N和L10N,Yii提供了今日Web2.0应用开发所需要的几乎一切功能[7]。
通过一个简单的命令行工具yiic可以快速创建一个web应用程序的代码框架,开发者可以在生成的代码框架基础上添加业务逻辑,以快速完成应用程序的开发。
納畴鳗吶鄖禎銣腻鰲锬。
Yii具有高度的可重用性和可扩展性,是纯粹的面向对象的。
Yii中的一切都是独立的可被配置,可重用,可扩展的组件。
更重要的是Yii有着越来越多的扩展库。
这可能有助于大大减少开发时间。
風撵鲔貓铁频钙蓟纠庙。
2.3Sphinx
Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。
Sphinx特别为一些脚本语言设计搜索API接口,如PHP,Python,Perl,Ruby等,同时为MySQL也设计了一个存储引擎插件[8]。
灭嗳骇諗鋅猎輛觏馊藹。
Sphinx单一索引最大可包含1亿条记录,在1千万条记录情况下的查询速度为0.x秒(毫秒级)。
Sphinx创建索引的速度为:
创建100万条记录的索引只需3~4分钟,创建1000万条记录的索引可以在50分钟内完成,而只包含最新10万条记录的增量索引,重建一次只需几十秒。
铹鸝饷飾镡閌赀诨癱骝。
2.4UEditor
UEditor是一种轻量、可定制开源富文本编辑器,开源基于BSD协议,所有源代码在协议允许范围内可自由修改和使用。
XXUEditor可以帮助不少网站开发者在开发富文本编辑器所遇到的难题,节约开发者因开发富文本编辑器所需要的大量时间。
UEditor中所有的功能型实现都是通过命令插件层中的命令和插件来完成的,并且各个命令和插件之间基本互不耦合——使用者需要使用哪个功能就导入哪个功能对应的命令或者插件文件,完全不用考虑另外那些杂七杂八的JS文件。
理论上来讲,所有的命令都是可以用插件来代替的,但是依然将两者分开的主要原因是命令都是一些静态的方法,无需随editor实例初始化,从而优化了编辑器的性能。
而插件随编辑器的初始化而初始化,性能上会有少许的影响,但相比命令而言,插件能够完成更加复杂的功能。
其中最主要的一个特点是在插件内部既可以为编辑器注册命令,也可以为编辑器绑定监听事件。
这个特点使得为编辑器添加任何功能都可以在插件中独立完成。
攙閿频嵘陣澇諗谴隴泸。
第3章
系统分析与设计
具体而又详细的系统分析与设计是很重要的环节,是详细设计成败的重要基础和必要条件。
一个BBS论坛可以大致分为以下流程:
用户登录进入论坛(一半为游客,有时候注册为会员),就某个话题展开讨论。
通过发帖功能发布新的话题,通过回帖功能回复已有的话题,通过搜索功能查找已有的话题。
管理员通过功能创建、编辑、删除论坛的版块,管理帖子。
这样的流程决定了BBS论坛系统的需求与设计。
趕輾雏纨颗锊讨跃满賺。
3.1系统分析
论坛管理系统最重要的就是前台浏览论坛和后台管理论坛数据两部分,本系统对两部分的架构都做了详细的设计,前台主要包括用户个人管理和论坛内容展示两个部分,而后台主要包括会员管理,分区管理,板块管理,文章管理和回帖管理五个部分。
夹覡闾辁駁档驀迁锬減。
从硬件上讲,计算机硬件的速度现在已经不是问题,大容量高速度的硬盘十分普遍了,同时网络速度的提高,这些为系统的运行打下了坚实的基础。
从软件的角度上讲,数据库技术也已经相当成熟,比如本系统所用处理能力很强的Mysql数据库,同时基于Yii框架进行开发,将试图、模型已经进行了分层,减少了耦合,提高了代码的重用性。
视絀镘鸸鲚鐘脑钧欖粝。
3.2系统运行环境
本系统运行环境是WAMP,也就是采用B/S结构,即大家熟知的客户机和服务器结构。
Apache是最通用的网络服务器;Mysql是带有基于网络管理附加工具的关系数据库;PHP是流行的对象脚本语言,它包含了多数其它语言的优秀特征来使得它的网络开发更加有效[9]。
开发者在Windows操作系统下使用这些Linux环境里的工具称为使用WAMP。
偽澀锟攢鴛擋緬铹鈞錠。
B/S一种网络结构模式,WEB浏览器是客户端最主要的应用软件。
这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。
客户机上只要安装一个浏览器,如InternetExplorer,服务器安装SQLServer、Oracle、MYSQL等数据库。
浏览器通过WebServer同数据库进行数据交互[10]。
緦徑铫膾龋轿级镗挢廟。
3.2.1系统安全性
用户登录密码采用MD5加密算法。
保证用户在登录时更加的安全。
密码同时也不易遗失。
系统所有操作数据库采用PDO,PDO扩展为PHP访问数据库定义了一个轻量级的、一致性的接口,它提供了一个数据访问抽象层,这样,无论使用什么数据库,都可以通过一致的函数执行查询和获取数据。
PDO类能防止SQL注入,使网站系统更加健壮[11]。
騅憑钶銘侥张礫阵轸蔼。
登录论坛系统时添加验证码功能,验证码一般是防止批量注册的,人眼看起来都费劲,何况是机器。
像XX贴吧未登录发贴要输入验证码大概是防止大规模匿名回帖的发生目前,不少网站为了防止用户利用机器人自动注册、登录、灌水,都采用了验证码技术。
疠骐錾农剎貯狱颢幗騮。
3.2.2系统通用性
本系统代码编写严格符合在Linux下要求,因此在Linux下也能正常运行,通常系统最后发布都要发布在Linux系统下[12]。
镞锊过润启婭澗骆讕瀘。
3.3功能设计
结合目前互联网各大论坛核心业务的分析,制定BBS论坛管理系统建设方案。
经过详细的分析和研究,确定该系统在结构上基本上分为:
论坛前台和论坛后台管理两部分。
榿贰轲誊壟该槛鲻垲赛。
功能设计上本系统主要包括七大功能:
个人用户管理功能、论坛内容展示功能、会员管理功能、分区管理功能、版块管理功能、文章管理功能和回帖管理功能。
每个大的功能模块下又细分出具体的小的功能模块。
邁茑赚陉宾呗擷鹪讼凑。
个人用户管理功能:
用户访问论坛首页进行登录,没有账号可以进行注册,然后进入论坛添加用户的详细信息,包括头像,邮箱等等,以及对所有表单数据的验证。
。
嵝硖贪塒廩袞悯倉華糲。
论坛内容展示功能:
(1)发帖和回帖功能:
用户对自己感兴趣的板块可以发表文章或者进行回帖。
该系统采用UE编辑器,使发表文章时有更加丰富的内容。
该栎谖碼戆沖巋鳧薩锭。
(2)浏览帖子功能:
在顶级分区下模块区可以查看对应模块下的文章及回帖总数,及文章和回帖的最后发表时间。
在文章详细页面可以查看每个用户的头像等详细信息。
劇妆诨貰攖苹埘呂仑庙。
会员管理功能:
管理员可以添加会员,对会员的个人信息进行管理,删除会员。
会员也可以添加分区及板块
分区管理功能:
管理员可以添加分区,对分区进行操作。
删除分区时,如果该分区下面有板块,则要先完成删除该分区下的板块。
版块管理功能:
管理员可以添加板块,对版块进行操作。
删除板块时,如果该板块下有文章,则要先完成删除该板块下的文章。
文章管理功能:
管理员对前台用户发表的文章进行管理,对不符合论坛要求的相关内容进行删除。
回帖管理功能:
管理员对前台游客以及会员回帖进行管理,对不符合论坛要求的回复进行删除。
文章管理功能
臠龍讹驄桠业變墊罗蘄。
图3-2概要设计功能模块图
3.4数据库设计
数据库设计是项目开发中的系统设计中非常重要的一个关键环节,之所以强调数据库的重要性,是因为如果设计不好,在后来的系统维护、变更和功能扩充时,甚至在系统开发过程中,将会引起比较大的问题,会遇到非常大的困难,大量