您好,欢迎来到纷纭教育。
搜索
您的当前位置:首页基于PHP框架的社区论坛管理系统的设计与实现

基于PHP框架的社区论坛管理系统的设计与实现

来源:纷纭教育


密级:

基于PHP框架的社区论坛管理系

统的设计与实现

Research Php BBS Forum Management

System Based on Yii Framework

摘 要

社区论坛管理系统是互联网上的一种电子信息服务系统。每个用户都可以在在论坛上提出自己的想法。近些年来,通过编程人员和很多爱好者的努力,BBS论坛的功能得到了很大的扩充。而如今的BBS论坛系统功能更丰富,允许用户之间分享工具软件,技术文档等资源。如何设计稳定的BBS系统,是每个开发人员必须要考虑的问题,一个成功的BBS系统可大大提高承载此论坛的网站点击率,为了使一个论坛系统发挥更大的作用,使企业的用户加入到产品、服务等内容的讨论上来,对企业的发展有很好的促进作用。

论文介绍了课题研究的背景和意义及国内外发展状况,详细介绍了课题采用的相关技术。结合用户业务基本要求,进行了详细的分析研究,确定该系统主要功能包括七大模块:个人用户管理功能、论坛内容展示功能、会员管理与维护功能、分区管理与维护功能、板块管理与维护功能、文章管理功能和回帖管理功能。本文较为详尽的阐述了主要功能模块的实现过程。

本系统使用Zend Studio集成开发环境编写,并使用基于MVC模式的Yii框架技术进行开发。利用Sphinx全文检索引擎实现文章搜索。系统前台数据采用文件缓存和Memcache缓存技术,可以大大提高用户体验。后台数据库使用甲骨文公司的Mysql数据库,利用SQLyog实现对数据库的管理和操作。在以面向对象的程序设计技术为指导思想的前提下,完成了本系统的具体实现过程。系统解决了大访问量下对网站的压力,对使用该系统的企业发展有很好的辅助作用。

关键词:论坛管理系统;全文检索;Sphinx;Memcache;Mysql

I

Abstract

Community Community forum management system is an electronic information service system on the Internet. Every user can put forward his ideas in the forum. In recent years, through the programming of personnel and many enthusiasts, the function of the forum BBS has been greatly expanded. And today's BBS forum system features richer, allowing users to share between the tools and software, technical documentation and other resources. How to design the stability of the BBS system, each developer must consider the problem, a successful BBS system can greatly improve the bearing of this forum website click rate, in order to make a forum system play a greater role, the enterprise user added to the products, services, and other content are discussed, the development of enterprises has a good role in promoting.

This paper introduces the background and significance of the research and the development of the domestic and foreign, and introduces the technology of the subject.. Combined with the business users basic requirements, detailed analysis and research, identify seven modules: individual user management function, the content of the Forum display function, member management and maintenance functions, partition management and maintenance functions, sector management and maintenance functions, article management function and replies management function, including the main function of the system. This paper expounds the realization of the main function modules in detail..

This system uses Studio Zend integrated development environment, and uses the Yii framework technology based on MVC mode to develop. Use Sphinx full-text search engine to achieve the article search. System foreground data using file caching and Memcache caching technology can greatly improve the user experience. Database using the Oracle Corp Mysql database, using SQLyog to achieve the database management and operation. In the premise of the object oriented programming technology, the concrete realization of the system is completed.. The system has solved the pressure of the website under the large amount of visit, and has

II

good assistant for the development of the enterprise.

Keyword: Forum management system; full-text search; Sphinx; Memcache; Mysql

III

目 录

摘 要 ....................................................................................................................... I Abstract ......................................................................................................................... II 目 录 .................................................................................................................... IV 第 1 章 引 言 .................................................................................................. - 1 -

1.1 系统开发背景 ............................................................................................ - 1 - 1.2 国内外发展状况 ........................................................................................ - 2 -

1.2.1 国内方面............................................................................................ - 2 - 1.2.2 国外方面............................................................................................ - 2 - 1.3 研究内容及目标 ........................................................................................ - 3 - 第 2 章 相关技术综述 .......................................................................................... - 4 -

2.1 Zend Studio .................................................................................................. - 4 - 2.2 Yii框架........................................................................................................ - 5 - 2.3 Sphinx .......................................................................................................... - 5 - 2.4 UEditor ........................................................................................................ - 5 - 第 3 章 系统分析与设计 ...................................................................................... - 7 -

3.1 系统分析 .................................................................................................... - 7 - 3.2 系统运行环境 ............................................................................................. - 7 -

3.2.1 系统安全性 ........................................................................................ - 8 - 3.2.2 系统通用性 ........................................................................................ - 8 - 3.3 功能设计 ..................................................................................................... - 8 - 3.4 数据库设计 ............................................................................................... - 10 - 3.5关键问题讨论 ............................................................................................. - 13 -

3.5.1数据库设计 ....................................................................................... - 13 - 3.5.2访问量大时的解决方法 ................................................................... - 13 - 3.5.3搜索功能 .......................................................................................... - 13 -

第 4 章 系统功能详细实现 ................................................................................ - 14 -

4.1 个人用户管理功能 .................................................................................. - 14 - 4.2 论坛内容展示功能 .................................................................................. - 16 -

IV

4.3 会员管理功能 .......................................................................................... - 19 -

4.3.1 添加会员功能 .................................................................................. - 19 - 4.3.2 会员管理功能 .................................................................................. - 22 - 4.4 分区管理功能 .......................................................................................... - 25 -

4.4.1 添加分区.......................................................................................... - 26 - 4.4.2 分区管理.......................................................................................... - 28 - 4.5 版块管理功能 .......................................................................................... - 30 -

4.5.1 添加版块.......................................................................................... - 30 - 4.5.2 版块管理.......................................................................................... - 32 - 4.6 文章管理功能 .......................................................................................... - 35 -

4.6.1 查看文章列表 .................................................................................. - 35 - 4.6.2 删除文章.......................................................................................... - 36 - 4.7 回帖管理功能 .......................................................................................... - 37 -

4.7.1 查看帖子列表 .................................................................................. - 37 - 4.7.2 删除回帖.......................................................................................... - 39 -

第 5 章 结 论 ................................................................................................ - 41 - 参 考 文 献 .......................................................................................................... - 42 - 致 谢 .................................................................................... 错误!未定义书签。

V

第 1 章 引 言

在现在快速发展的社会,互联网技术得到更快的发展,已经不是日新月异就能形容的信息化世界里,更加动态性、交互性与时速性的网络论坛成为其中最快速、最丰富和最自由的网络信息资源,也是最受广大的现代人类欢迎的信息交流方式之一。

1.1 系统开发背景

论坛管理系统是一种对某些问题、看法互相学习的系统,论坛系统的作用在于提供给用户彼此交流的空间,这种交流的方式浏览帖子和发表帖子以及回帖。因此对于帖子的管理是BBS系统的一个核心功能,发表帖子的权利可以只对特定的人群。互联网上的优质资源很多,我们每天都会接触到很多不同的优质资源,比如实用的网站,有用的资讯等等,大部分网站是利用PHP语言编写[1]。BBS是Bulletin board system的缩写,中文含义是电子公告板。它是一种交互性强,内容丰富而即使的Internet电子信息服务系统。用户在BBS站点上可以获得各种信息服务,发布信息,进行讨论,聊天等等。其界面一般是以文字为主,主要目的是为广大网友提供一个彼此交流的空间,其最大的优点是自由平等,快捷互动。

BBS最早是用来公布股市价格等类信息的,当时BBS连文件传输的功能都没有,而且只能在苹果计算机上运行。早期的BBS与一般街头和校园内的公告板性质相同,只不过是通过电脑来传播或获得消息而已。一直到个人计算机开始普及之后,有些人尝试将苹果计算机上的BBS转移到个人计算机上,BBS才开始渐渐普及开来。近些年来,由于爱好者们的努力,BBS的功能得到了很大的扩充。而如今的BBS系统功能更丰富,允许用户之间分享工具软件,技术文档等资源。BBS论坛系统突破了地域和时间的,实现了全球性资源共享,有助于人们学习,工作,生活,同时提高了人们的交流信息、思想和解决问题的能力。如何设计、建立一个经济、实用、全面、高效、稳定的BBS系统,是每个开发BBS系统的程序员必须要考虑的问题,一个成功的BBS系统可大大提高承载此论坛的网站点击率,使企业的用户加入到产品、服务等内容的讨论上

- 1 -

来,起到收集反馈资料的作用,对企业战略的发展有很好的参考作用。

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的直接研究很少,间接的研究主要集中在对网络社会、虚拟社区方面。如针对网络社会中的人际关系、行为方式、价值观念和社会结构等,对虚拟社区的自身特征及虚拟社区中的社会问题等进行广泛研究。著名的研究成果有曼纽尔·卡期特的《网络社会的崛起》、霍华德·莱茵戈德的《虚拟社

- 2 -

区》、尼尔·巴雷特的《数字化犯罪》等。

1.3 研究内容及目标

本文主要先全面系统的分析BBS论坛管理系统的实际业务流程,然后进行模块化的设计,再然后针对实际业务中存在的难点问题提出了较好的解决方案,并对各系统功能进行了详细方案设计。

根据本系统的特点,可以将其分为前台和后台两个部分,前台主要包括用户个人管理和论坛内容展示两个部分,而后台主要包括会员管理,分区管理,板块管理,文章管理和回帖管理五个部分[2]。预期目标,管理员和会员可以在后台添加分区及板块等,普通用户可以在前台发表及回帖,以及最后系统上线。通过BBS论坛的方式,使用者可以在论坛上发布各项通知,可以让用户,游客能够及时准确的了解想要了解的动态,同时通过交流平台能够展示每一个用户的各种能力,发布个人对一些事物的看法,增强人与人之间,团体与团体之间,个人与团体之间的互动交流。

系统中的主要代码使用Sublime Text3编写,主要采用的语言是PHP。符合MVC架构[3],本网站采用现在很流行的B/S开发模式,采用Yii框架进行开发,与MySQL数据库高性能组合,完全可以满足上述功能的需求,软件界面简易,流程合理,结构清晰,满足用户视觉使用习惯。易使用和维护等,将实施成本降到了最低。对软件使用与实施具重要意义。由于本系统采用PHP语言开发,代码编写符合在Linux下的编写要求。因此可以运行在任何环境下,包括:Windows、Linux和Unix等主流操作系统。系统的设计以方便未来业务的扩展和系统扩充为目标,系统要求能够方便的升级,充分保护系统的投资。

论坛系统的研究目标是前台对所有的数据进行展示,以及利用网络文本编辑器实现发帖和回帖。搜索功能利用斯芬克斯检索。后台分区、版块和文章的管理。和该系统要完成无限分类对分区和板块的改善。以及RBAC对权限进行分配[4]。

- 3 -

第 2 章 相关技术综述

本系统使用Zend Technologies公司开发的PHP语言集成开发环境Zend Studio。主要是使用基于MVC模式的YII框架进行开发。后台数据库是目前属于Oracle公司的Mysql数据库。利用Sqlyog数据库管理工具实现对数据库的管理和操作。系统前台文章搜索功能是一个基于SQL的全文检索引擎Sphinx。Sphinx单一索引最大可包含1亿条记录,在1千万条记录情况下的查询速度为毫秒级[5]。系统编辑文字运用了所见即所得的开源富文本编辑器UEditor,具有轻量、可定制、用户体验优秀等特点。

2.1 Zend Studio

Zend Studio是Zend Technologies开发的PHP语言集成开发环境(IDE)。也支持HTML和js标签,但只对PHP语言提供调试支持。它包括了PHP所有必须的开发部件。通过一整套编辑、调试、分析、优化和数据库工具,Zend Studio 加速开发周期,并简化复杂的应用方案。Zend Studio支持PHP语法加亮显示,支持语法自动填充功能,支持书签功能,支持语法自动缩排和代码复制功能,内置一个强大的PHP代码调试工具,支持本地和远程两种调试模式,支持多种高级调试功能[6]。

Zend Studio可以在Linux、Windows、Mac OS X上运行。Zend Studio的强大之处,除了一般编辑器所具有的代码高亮,语法自动缩进,书签功能外,它内置的调试器更是无可挑剔,支持本地和远程(debug server)两种调试模式,支持诸如跟踪变量、单步运行、断点、堆栈信息、函数调用、查看实时输出等多种高级调试功能。通过完全的PHP5支持、编码分析器、编码组合功能、语法检索、项目管理器、编码编辑器、绘图调试器(向导)。超强智能编码:具备新的和更优秀的分析和优化工具像PHP编码检测器,。PHP的标准记录工具--PHP文档记录器:非常容易记录PHP代码、程序应用和方案。FTP和SFTP组合简化配置,使开发者安全地从远程服务器灵活的上载和下载项目文件。

- 4 -

2.2 Yii框架

Yii是一个基于组件的高性能PHP框架,用于开发大型Web应用。Yii采用严格的OOP编写,并有着完善的库引用以及全面的教程。从 MVC,DAO/ActiveRecord,widgets,caching,等级式RBAC,Web服务,到主题化,I18N和L10N,Yii提供了今日Web 2.0应用开发所需要的几乎一切功能[7]。通过一个简单的命令行工具 yiic 可以快速创建一个web应用程序的代码框架,开发者可以在生成的代码框架基础上添加业务逻辑,以快速完成应用程序的开发。

Yii 具有高度的可重用性和可扩展性,是纯粹的面向对象的。Yii中的一切都是的可被配置,可重用,可扩展的组件。更重要的是Yii有着越来越多的扩展库。这可能有助于大大减少开发时间。

2.3 Sphinx

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.4 UEditor

UEditor是一种轻量、可定制开源富文本编辑器,开源基于BSD协议,所有源代码在协议允许范围内可自由修改和使用。百度UEditor可以帮助不少网站开发者在开发富文本编辑器所遇到的难题,节约开发者因开发富文本编辑器所需要的大量时间。UEditor中所有的功能型实现都是通过命令插件层中的命令和插件来完成的,并且各个命令和插件之间基本互不耦合——使用者需要使用哪个功能就导入哪个功能对应的命令或者插件文件,完全不用考虑另外那些杂七杂八的JS文件。理论上来讲,所有的命令都是可以用插件来代替的,但是依然将

- 5 -

两者分开的主要原因是命令都是一些静态的方法,无需随editor实例初始化,从而优化了编辑器的性能。而插件随编辑器的初始化而初始化,性能上会有少许的影响,但相比命令而言,插件能够完成更加复杂的功能。其中最主要的一个特点是在插件内部既可以为编辑器注册命令,也可以为编辑器绑定监听事件。这个特点使得为编辑器添加任何功能都可以在插件中完成。

- 6 -

第 3 章 系统分析与设计

具体而又详细的系统分析与设计是很重要的环节,是详细设计成败的重要基础和必要条件。一个BBS论坛可以大致分为以下流程:用户登录进入论坛(一半为游客,有时候注册为会员),就某个话题展开讨论。通过发帖功能发布新的话题,通过回帖功能回复已有的话题,通过搜索功能查找已有的话题。管理员通过功能创建、编辑、删除论坛的版块,管理帖子。这样的流程决定了BBS论坛系统的需求与设计。

3.1 系统分析

论坛管理系统最重要的就是前台浏览论坛和后台管理论坛数据两部分,本系统对两部分的架构都做了详细的设计,前台主要包括用户个人管理和论坛内容展示两个部分,而后台主要包括会员管理,分区管理,板块管理,文章管理和回帖管理五个部分。

从硬件上讲,计算机硬件的速度现在已经不是问题,大容量高速度的硬盘十分普遍了,同时网络速度的提高,这些为系统的运行打下了坚实的基础。从软件的角度上讲,数据库技术也已经相当成熟,比如本系统所用处理能力很强的Mysql数据库,同时基于Yii框架进行开发,将试图、模型已经进行了分层,减少了耦合,提高了代码的重用性。

3.2 系统运行环境

本系统运行环境是WAMP,也就是采用B/S 结构,即大家熟知的客户机和服务器结构。Apache是最通用的网络服务器;Mysql是带有基于网络管理附加工具的关系数据库;PHP是流行的对象脚本语言,它包含了多数其它语言的优秀特征来使得它的网络开发更加有效[9]。开发者在Windows操作系统下使用这些Linux环境里的工具称为使用WAMP。

B/S一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器,如Internet Explorer,服务

- 7 -

器安装SQL Server、Oracle、MYSQL等数据库。浏览器通过Web Server 同数据库进行数据交互[10]。

3.2.1 系统安全性

用户登录密码采用MD5加密算法。保证用户在登录时更加的安全。密码同时也不易遗失。

系统所有操作数据库采用PDO,PDO扩展为PHP访问数据库定义了一个轻量级的、一致性的接口,它提供了一个数据访问抽象层,这样,无论使用什么数据库,都可以通过一致的函数执行查询和获取数据。PDO类能防止SQL注入,使网站系统更加健壮[11]。

登录论坛系统时添加验证码功能,验证码一般是防止批量注册的,人眼看起来都费劲,何况是机器。像百度贴吧未登录发贴要输入验证码大概是防止大规模匿名回帖的发生目前,不少网站为了防止用户利用机器人自动注册、登录、灌水,都采用了验证码技术。

3.2.2 系统通用性

本系统代码编写严格符合在Linux下要求,因此在Linux下也能正常运行,通常系统最后发布都要发布在Linux系统下[12]。

3.3 功能设计

结合目前互联网各大论坛核心业务的分析,制定BBS论坛管理系统建设方案。经过详细的分析和研究,确定该系统在结构上基本上分为:论坛前台和论坛后台管理两部分。

功能设计上本系统主要包括七大功能:个人用户管理功能、论坛内容展示功能、会员管理功能、分区管理功能、版块管理功能、文章管理功能和回帖管理功能。每个大的功能模块下又细分出具体的小的功能模块。

个人用户管理功能:

用户访问论坛首页进行登录,没有账号可以进行注册,然后进入论坛添加用户的详细信息,包括头像,邮箱等等,以及对所有表单数据的验证。。

论坛内容展示功能:

- 8 -

(1)发帖和回帖功能:用户对自己感兴趣的板块可以发表文章或者进行回帖。该系统采用UE编辑器,使发表文章时有更加丰富的内容。

(2)浏览帖子功能:在顶级分区下模块区可以查看对应模块下的文章及回帖总数,及文章和回帖的最后发表时间。在文章详细页面可以查看每个用户的头像等详细信息。

会员管理功能:

管理员可以添加会员,对会员的个人信息进行管理,删除会员。会员也可以添加分区及板块

分区管理功能:

管理员可以添加分区,对分区进行操作。删除分区时,如果该分区下面有板块,则要先完成删除该分区下的板块。

版块管理功能:

管理员可以添加板块,对版块进行操作。删除板块时,如果该板块下有文章,则要先完成删除该板块下的文章。

文章管理功能:

管理员对前台用户发表的文章进行管理,对不符合论坛要求的相关内容进行删除。

回帖管理功能:管理员对前台游客以及会员回帖进行管理,对不符合论坛要求的回复进行删除。

- 9 -

BBS论坛故管理系统 个人用户管理功能 论坛内容展示功能 会员管理功能 分区 管理功能 版块管理功能 文章管理功能 回帖管理功能

图3-2 概要设计功能模块图

3.4 数据库设计

数据库设计是项目开发中的系统设计中非常重要的一个关键环节,之所以强调数据库的重要性,是因为如果设计不好,在后来的系统维护、变更和功能扩充时,甚至在系统开发过程中,将会引起比较大的问题,会遇到非常大的困难,大量工作将会重新进行。下面介绍本系统中几个重要的表。

用户信息表(bbs_user)主要是存储系统用户的相关信息以及使用权限,只用在这个表中存在的用户并且有一定权限才能登录到系统的后台业务界面,表中没有权限的用户只能查看本论坛系统的前台展示部分,展示部分也可以登录的,论坛系统最重要的就是用户,所以用户基本信息表的设计十分重要,用户基本信息表的设计如表3-1所示。

表3-1 用户信息表

序号 1 2 3

数据库字段 Id Username Password

类型

整型 字符串 字符串

- 10 -

存储内容

用户ID 用户名 用户密码

4 5 6

Rtime Rip Isadmin

整型 整型 枚举

注册时间 注册IP 用户权限

用户详细信息表(bbs_profile)存储每个用户的详细信息,包括用户的昵称、邮箱、头像等,用户详细信息表结构设计如表3-2所示。 序号 1 2 3 4 5 6 7 8

论坛分区表(bbs_part)存储的是论坛所有分区信息,字段主要包括分区ID和分区名称。用户详细信息表结构设计如表3-3所示。

表3-3 论坛分区表

序号 1 2

表3-2 用户详细信息表

数据库字段 Uid Age Sex Tname Email Edu Signed Face

类型

整型 整型 枚举 文本 文本 枚举 文本 文本

存储内容 用户ID 年龄 性别 用户昵称 邮箱 学历 个性签名 头像

数据库字段 Id Name

类型

整型 文本

存储内容 分区ID 分区名称

论坛版块表(bbs_category)存储的是论坛所有分区下版块信息,字段主要包括版块ID和版块名称。论坛版块表结构设计如表3-4所示。

表3-4 论坛版块表

序号 1

数据库字段 Id

类型

整型

- 11 -

存储内容 分区ID

2 3

Name Pid

文本 整型

分区名称 所属分区ID

文章表(bbs_article)存储论坛所有文章信息,包括文章的标题、内容、发布时间等,文章表结构设计如表3-5所示。 序号 1 2 3 4 5 6

表3-5 文章表

数据库字段 Id Title Content Uid Cid Pubtime

类型

整型 文本 文本 整型 整型 整型

存储内容 文章ID 文章标题 文章内容 文章作者ID 所属版块ID 发布时间

文章评论表(bbs_comment)存储论坛所有文章的评论信息,包括评论人、评论内容等,评论表结构设计如表3-6所示。

表3-6 评论表

序号 1 2 3 4 5

数据库字段 Id Content Uid Aid Pubtime

类型

整型 文本 整型 整型 整型

存储内容 评论ID 评论内容 发布人的ID 所属文章

发布时间

- 12 -

3.5关键问题讨论 3.5.1数据库设计

根据论坛系统的需求和功能,对数据库的设计进行了全面分析,数据库选择用Mysql数据库,Mysql数据库中有Innodb,myisam等几种引擎,论坛系统多为插入操作,所以选择Innodb引擎[13],在前后台的操作中,对经常操作的字段添加索引,比如在文章表中的作者ID和所属版块ID中添加普通索引。一个比较复杂的应用系统,其对应的数据库表往往以千计。若让数据库管理员看到对象名就了解这个数据库对象所起的作用,恐怕会比较困难。而且在数据库对象引用的时候,数据库管理员也会为不能迅速找到所需要的数据库对象而头疼。为此,制定一个数据库对象的前缀BBS。数据库设计符合范式。为各表之间添加必要的关联外键。 3.5.2访问量大时的解决方法

当系统中用户特别多的时候,每次都向数据库服务器中请求数据,这样的方案不利于网站以后的发展,对经常访问的页面进行文件缓存和内存缓存。内存缓存采用Memcache。缓存是在磁盘或者内存中临时存储数据的一块区域。使用缓存可以提高效率,尽量减少对数据库的压力,提高页面相应速度[14]。Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。 3.5.3搜索功能

论坛系统中一定有搜索功能,以前的搜索大多利用Sql语句实现,但是当系统用户特别多的时候,频繁的进行数据库操作,会给数据库服务器带来很大的压力,本系统采用Sphinx全文检索实现系统的搜索功能[15],Sphinx单一索引最大可包含1亿条记录,在1千万条记录情况下的查询速度为0.x秒(毫秒级)。Sphinx创建索引的速度为:创建100万条记录的索引只需 3~4分钟,创建1000万条记录的索引可以在50分钟内完成,而只包含最新10万条记录的增量索引,重建一次只需几十秒。

- 13 -

第 4 章 系统功能详细实现

本章详细介绍了如何开发BBS论坛管理系统,以及七大功能模块的功能描述和操作方法,并对各大功能模块的实现过程进行了详尽的阐述。

4.1 个人用户管理功能

本小节主要介绍的是在开发个人用户管理功能模块过程中所遇到的问题,以及解决问题的方法,即实现方法。

(1)问题描述

没有注册成用户的可以进行注册,已经注册成功的管理自己的信息,其中头像在论坛中要显示三种大小的,其中小头像是在浏览页中显示,中等大小头像是在文章中显示,大头像可以在系统以后的完善中做插件修改头像使用。

(2)实现方法

前台修改用户个人信息界面如图4-1所示。

图4-1 个人详细信息编辑界面

不同大小头像需要编写产生缩略图的类,首先打开extension=php_gd2.dll扩展,重启apache服务器,其代码实现如下:

- 14 -

class Zoom{

static function savePath($sPath,$toW,$toH,$savePath,$prefix=\"s_\"){ $i=imagecreatetruecolor($toW,$toH); $white=imagecolorallocate($i, 255, 255, 255); imagefill($i,0,0,$white); $arr=getimagesize($sPath); $sW=$arr[0]; $sH=$arr[1]; $sType=$arr['mime']; switch($sType){ case 'image/jpeg': case 'image/pjpeg': }

$trueFunName=\"imagecreatefrom\".$funName; $s=$trueFunName($sPath); $biliW=$sW/$toW; $biliH=$sH/$toH; if($biliW>=$biliH){ $trueBili=$biliW; }else{

$trueBili=$biliH;

- 15 -

$funName=\"jpeg\"; break;

$funName=\"gif\"; break;

$funName=\"png\"; break; return false;

case 'image/gif':

case 'image/png':

default:

}

}

$trueW=$sW/$trueBili; $trueH=$sH/$trueBili; $toX=($toW-$trueW)/2; $toY=($toH-$trueH)/2;

imagecopyresized($i,$s,$toX,$toY,0,0,$trueW,$trueH,$sW,$sH); $fileArr=explode(\"/\ $oldName=end($fileArr); $newName=$prefix.$oldName; $saveFunName=\"image\".$funName;

return $saveFunName($i,$savePath.\"/\".$newName); }

4.2 论坛内容展示功能

用户对自己感兴趣的板块可以发表文章或者进行回帖。该系统采用UE编辑器,使发表文章时有更加丰富的内容。在顶级分区下模块区可以查看对应模块下的文章及回帖总数,及文章和回帖的最后发表时间。在文章详细页面可以查看每个用户的头像等详细信息。

其实从系统开始运行开始,系统就会判断缓存中是否有该首页信息,如果有直接加载缓存。系统首页部分截图如图4-2所示。

在系统首页中,有六大分区,每个分区下对应不同的版块,用户点击某分区下的版块可以查看该版块下有什么文章,例如点击后端开发中的PHP。系统界面如图4-3所示。

用户点击该版块下的某个文章,可以查看文章内容及评论,也可以发表评论,以及在该版块下发表文章。例如点击文章的缓存原理文章,系统界面如图4-4所示。

- 16 -

图 4-2 系统首页部分截图

图4-3 系统登陆界面

- 17 -

图4-4 浏览文章界面

为提升用户体验,发帖采用了UEditor网络文本编辑器,用户发帖界面如图4-5所示。

- 18 -

图4-5 发表文章界面

4.3 会员管理功能

管理员可以添加会员,对会员的个人信息进行管理,删除会员。会员也可以添加分区及板块。

4.3.1 添加会员功能

本小节主要介绍的是会员管理中的添加会员功能,以及这些功能是调用的那部分函数。

(1) 功能描述

由于论坛管理系统一个管理员对整个系统的管理过于繁忙,所以添加一个会员同样有管理员的权限和管理员协同工作。添加会员界面如图4-6所示。

图4-6 添加会员界面

(2)程序实现

Yii框架安装后,是以MVC模式开发的,下面的代码是Controller层的加添会员过程。首先实例化用户对象,指定场景为useradd,以便于编写规则,然后验证,如果是真,则插入数据库,最后恢复密码以及重复密码为空。 public function actionAdd(){ $usermodel = new User(); $usermodel->scenario = 'useradd';

- 19 -

if(!empty($_POST['User'])){

$usermodel->attributes = $_POST['User']; if($usermodel->validate()){ }

$usermodel->password =md5($usermodel->password); $usermodel->rtime = time();

$usermodel->rip = ip2long($_SERVER['REMOTE_ADDR']); if($usermodel->insert()){ }

$usermodel->password = ''; $usermodel->repass = '';

$this->render(\"useradd\

$profilemodel = new Profile();

$profilemodel->uid = $usermodel->getPrimaryKey(); $profilemodel->email = $_POST['User']['email']; Yii::app()->user->setFlash('info','用户名添加成功'); }else{ } }

}else{ }

Yii::app()->user->setFlash('info','用户名添加失败'); Yii::app()->user->setFlash('info','用户名添加失败');

$usermodel->isadmin = '1';

if($profilemodel->insert()){

和Controller层对应的View层有两种方式编写,可以运用常用的html方式编写,本系统代码采用Yii框架组件模式编写。

- 20 -

添加会员

beginWidget('CActiveForm') ?>

labelEx($model,'username') ?> textField

($model,'username',array('class'=>'form_input')) ?>

labelEx($model,'password') ?> $form->passwordField($model,'password',array('class'=>'form_input')) ?>

labelEx($model,'repass') ?> $form->passwordField($model,'repass',array('class'=>'form_input')) ?>

labelEx($model,'email') ?> $form->emailField($model,'email',array('class'=>'form_input')) ?>

endWidget('CActiveForm') ?>

echo $form->error($model,'username'); echo $form->error($model,'password');

- 21 -

echo $form->error($model,'repass'); echo $form->error($model,'email'); if(Yii::app()->user->hasFlash('info')){ echo Yii::app()->user->getFlash('info'); } ?>

该过程Validate方法验证成功,验证失败返回假,如果验证失败,我们需要将失败的错误信息显示到模板当中

4.3.2 会员管理功能

本小节描述了会员管理功能,主要是编辑会员信息和删除会员,还有分页显示会员列表。主要阐述系统运行流程以及管理的具体代码实现。

(1)功能描述

分页显示所有会员。会员不仅能够在前台发帖,还能进入后台进行管理,在后台能够编辑会员的详细信息,和删除某会员。操作过程如图4-7,4-8所示。

- 22 -

图4-7 会员编辑界面

图4-8 会员分页显示界面

(2)程序实现

我们主要利用Page组件实现分页,首先实例化User对象和criterria

- 23 -

容器,然后统计总条数,实例化分页类,设置每页显示多少条,进行limit截取 其代码如下。

public function actionIndex(){

}

修改会员信息功能,根据用户的ID,先查询出当前用户的所有信息,其中修改头像时要调用文件上传类,生成三张不同大小的图片,然后在此基础信息上进行修改。

public function actionMod(){

$profilemodel = Profile::model(); $id = $_GET['id'];

$data = $profilemodel->find('uid=:uid',array(\":uid\"=>$id)); if(!empty($_POST['Profile'])){

$data->attributes = $_POST['Profile']; if($data->validate()){

$arr=array('tname'=>$data->tname,'age'=>$data->age,'sex'=> $data->sex,'edu'=>$data->edu,'signed'=>$data->signed); $upload = CUploadedFile::getInstance($data,'face'); if($upload){

$dir = \"./assets/uploads/avar\";

- 24 -

$usermodel = User::model(); $criteria = new CDbCriteria();

$usermodel->count('isadmin=:isadmin',array(':isadmin'=>'1')); $criteria->condition = 'isadmin=:isadmin'; $criteria->params = array(':isadmin'=>'1'); $total = $usermodel->count($criteria); $page = new CPagination($total); $page->pageSize= 2; $page->applyLimit($criteria);

$users = $usermodel->findAll($criteria); $data $this->render('userlist',$data);

=

array('users'=>$users,'pages'=>$page);

}

if(!file_exists($dir)){ mkdir($dir,0755,true); }

$randName=substr(md5(time()),0,6).\".\".$upload->extensionName;

$upfile = $dir.\"/\".$randName; if($upload->saveAs($upfile)){ $thumb = Yii::app()->thumb;

$thumb->savePath($upfile,200,200,$dir,'big_'); $thumb->savePath($upfile,120,120,$dir,'middle_'); $thumb->savePath($upfile,50,50,$dir,'small_'); unlink($upfile); $arr['face'] = $randName; }

$re=data->updateAll($arr,'uid=:uid',array(':uid'=>$_GET['id']));

if($re>0){

Yii::app()->user->setFlash('info','success');

}else{

Yii::app()->user->setFlash('info','fail');

} } }

$user = User::model()->findbypk($id); $data->username = $user->username;

$this->render('usermod',array('profilemodel'=>$data));

}

4.4 分区管理功能

管理员可以添加分区,对分区进行操作。删除分区时,如果该分区下面有板块,则要先完成删除该分区下的板块。

- 25 -

4.4.1 添加分区

添加分区功能主要是为整个论坛系统添加一个如今在社会上比较热的一类话题。

(1)功能描述

在后台管理系统界面点击分区管理,然后点击添加分区。如图4-9所示。 (2)程序实现

首先实例化用户对象,然后验证,如果是真,则插入数据库。点击Submit按钮,在弹出的对话框里,输入不同的分区名称可以在前台显示出刚刚添加的分区,如果数据库中已有该分区,则添加分区失败,详细代码如下。

public function actionAdd(){

$partmodel = new Part(); if(!empty($_POST['Part'])){

$partmodel->attributes = $_POST['Part']; if($partmodel->validate()){ if($partmodel->insert()){

Yii::app()->user->setFlash('info','添加分区成功'); }else{

Yii::app()->user->setFlash('info','添加分区失败'); } }

$partmodel->name='';

$this->render('partadd',array('partmodel'=>$partmodel)); }

}

- 26 -

图4-9添加分区界面

图4-10分区分页显示界面

- 27 -

4.4.2 分区管理

本小节描述了分区管理功能,主要是编辑分区名称和删除分区,对包含版块的分区,要先删除该分区下的版块才能删除分区。还有分页显示分区列表。主要阐述系统运行流程以及管理的具体代码实现。

(1)功能描述

分页显示所有分区。对有变动的分区进行操作,对已经过时的分区进行删除。前提是删除该分区下的所有版块,操作过程如图4-10,4-11所示。

(2)程序实现

public function actionIndex(){

$partmodel = Part::model(); $cdb = new CDbCriteria(); $count = $partmodel->count($cdb); $pager = new CPagination($count); $pager->pageSize = 3; $pager->applyLimit($cdb);

$parts = $partmodel->getAllParts($cdb);

$this->render('partindex',array('parts'=>$parts,'pager'=>$pager)); }

$partmodel = Part::model();

$data = $partmodel->findbypk($_GET['id']); if(!empty($_POST['Part'])){

$data->attributes = $_POST['Part']; if($data->validate()){

if($data->updatebypk($_GET['id'],array('name'=>$data->name))){

Yii::app()->user->setFlash('info','修改成功'); $this->redirect(array('part/index')); }else{

Yii::app()->user->setFlash('info','修改失败');

public function actionMod(){

}

- 28 -

}

}

}

$this->render('partmod',array('partmodel'=>$data));

以下代码是删除分区代码,根据分区id查询出该分区下是否包含版块,如果没有版块则调用deletebypk方法删除该分区。删除包含版块的分区如图4-11所示。

public function actionDel(){

$id = $_GET['id'];

$data = Category::model()->findAll('pid=:pid',array(\":pid\"=>$id)); if(empty($data)){

$partmodel = Part::model(); }

if($partmodel->deletebypk($_GET['id'])){

Yii::app()->user->setFlash('info','删除成功'); }else{

Yii::app()->user->setFlash('info','删除失败'); }

}else{ }

$this->redirect(array('part/index'));

Yii::app()->user->setFlash('info','该分区下包含版块,请先删除版块');

- 29 -

图4-11 删除失败界面

4.5 版块管理功能

4.5.1 添加版块

添加版块功能主要是为整个论坛系统中每个分区下添加新的版块,每天都有新的话题,版块也不断地更新。

(1)功能描述

在后台管理系统界面点击版块管理,然后点击添加版块。先选择要添加到的分区,然后填写版块名称,如图4-12所示。

(2)程序实现

点击添加版块按钮,在弹出的对话框里,在同意分区下,输入不同的版块名称可以在前台显示出刚刚添加的版块,如果数据库中已有该分区下的这个版块,则添加版块失败,详细代码如下。 public function actionAdd(){ $catemodel = new Category(); if(!empty($_POST['Category'])){

- 30 -

$catemodel->attributes = $_POST['Category']; if($catemodel->validate()){ if($catemodel->insert()){ } } }

}

$data = Part::model()->findAll(); $parts[$part->id] = $part->name;

foreach($data as $part){

Yii::app()->user->setFlash('info','添加成功'); $this->redirect(array('cate/add')); }else{

Yii::app()->user->setFlash('info','添加失败'); }

$this->render('cateadd',array('catemodel'=>$catemodel,'parts'=>$parts));

图4-12 添加版块界面

- 31 -

4.5.2 版块管理

本小节描述了版块管理功能,主要是编辑版块名称和删除版块,对包含文章的版块,要先删除该版块下的所有文章才能删除该版块。还有分页显示版块列表。主要阐述系统运行流程以及管理的具体代码实现。

(1)功能描述

分页显示所有版块。以及每个版块下的文章总数和所属分区。对每个分区下的版块进行管理,删除已经过时的版块,前提是先删除该版块下所有的文章,也可以强行删除版块,由具体代码实现操作过程如图4-13,4-14所示。

图4-13 分页显示版块列表

(2)程序实现

如何在版块列表中显示所属分区和文章总数,需要在版块的Model类中添加两个属性,$pname和$alltotal。然后分别通过代码查询出所属分区和文章总数。下面部分是代码的实现过程。

public function actionIndex(){

$catemodel = Category::model(); $cdb = new CDbCriteria();

- 32 -

$count = $catemodel->count($cdb); $pager = new CPagination($count); $pager->pageSize = 2; $pager->applyLimit($cdb); $cates = $catemodel->findAll($cdb); $partmodel = Part::model(); $articlemodel = Article::model(); foreach($cates as $cate){

$cate->pname = $partmodel->findByPk($cate->pid)->name;

$cate->atotal = $articlemodel->count(\"cid=:cid\}

$this->render('catelist',array('cates'=>$cates,'pages'=>$pager)); }

以下代码是修改版块代码,首先实例化Category对象,通过id查询出版块信息,修改其所在分区。然后把要该成的数据封装到data里,根据id调用updatebypk方法修改版块信息。然后进行验证,通过规则进行修改。 public function actionMod(){

$catemodel = Category::model();

$data = $catemodel->findByPk($_GET['id']); $partmodel = Part::model()->findAll(); foreach($partmodel as $part){ $parts[$part->id] = $part->name; }

if(!empty($_POST['Category'])){ $data->attributes = $_POST['Category']; if($data->validate()){ if($data->updateByPk

($_GET['id'],array('name'=>$data->name,'pid'=>$data->pid))){

Yii::app()->user->setFlash('info','修改成功'); $this->redirect(array('cate/index')); }else{

- 33 -

}

Yii::app()->user->setFlash('info','修改失败'); } }

$this->render('catemod',array('catemodel'=>$data,'parts'=>$parts)); }

如果该板块下的文章已经为空,则通过id调用deletebypk删除版块。然后调用Yii框架app()方法设置info信息,删除成功则info存删除成功,失败则存删除失败。跳转到版块列表页。 public function actionDel(){

$articlemodel = Article::model()->findByPk($_GET['id']); if(empty($articlemodel)){ $catemodel = Category::model(); if($catemodel->deletebypk($_GET['id'])){ Yii::app()->user->setFlash('info','删除成功'); }else{

Yii::app()->user->setFlash('info','删除失败'); } }else{

Yii::app()->user->setFlash('info','该模块下包含文章,请先删除文章'); }

$this->redirect(array('cate/index')); }

对于查询所属版块和版块下文章总数时,有两种方案,可以采用组装Sql语句的方式$cates = $catemodel->findAllBySql(\"select c.id,c.name,p.namepname,co unt(a.id) atotal from {{category}} c left join {{part}} p on c.pid=p.id left join {{artic le}} a on a.cid=c.id group by c.id\");第二种方式就是分离Model模型,上述代码采用的就是分离Model模型方式。

- 34 -

4.6 文章管理功能

4.6.1 查看文章列表

查看文章列表功能模块主要有查看该文章的信息以及作者和所属板块和回帖数。

(1)功能描述

查询文章表中的信息,以及所属板块和回帖数有两种方式查询,查询文章列表结果如图4-14所示。

图4-14 文章列表界面

(2)程序实现

public function actionList(){ $articlemodel = Article::model(); $cdb = new CDbCriteria();

$count = $articlemodel->count($cdb); $pager = new CPagination($count); $pager->pageSize = 2;

- 35 -

$pager->applyLimit($cdb);

$arts = $articlemodel->findAll($cdb); $catemodel = Category::model(); foreach($arts as $art){ } }

该方式为分离Model模型方式查询所属版块和回帖数,需要改进的就是所有的属性都分开,减少代码冗余。

$this->render(\"artlist\$art->cname = $catemodel->findByPk($art->cid)->name; $art->author = User::model()->findByPk($art->uid)->username; $art->commentCount=Part::model()->getCommentCount($art->id);

4.6.2 删除文章

(1)功能描述

点击删除图标,删除该文章,对于文章下评论数不为零的要先删除该文章下的所有评论。也可以强行删除文章,通过程序代码控制。删除成功如图4-15所示。

- 36 -

图4-15 删除文章成功界面

(2)程序实现

public function actionDel(){ $articlemodel = Article::model();

if($articlemodel->deletebypk($_GET['id'])){ Yii::app()->user->setFlash('info','删除成功'); }else{

Yii::app()->user->setFlash('info','删除失败'); }

}

$this->redirect(array('art/list'));

4.7 回帖管理功能

4.7.1 查看帖子列表

查看帖子列表功能模块主要有查看该回帖的信息以及回帖人和所属文章。 (1)功能描述

根据Aid查询回帖表中的信息,以及所属文章有两种方式查询,一种是组装sql语句,另一种是创建$cname属性。查询出发表时间对前台展示发表时间有更新作用。查询回帖列表结果如图4-16所示。

- 37 -

图4-16 回帖列表界面

(2)程序实现

在这里只介绍一下分离model模型的方式功能代码的实现。实例化回帖对象和容器。设置分页大小,遍历封装commons。使列表中包含作者和标题。

public function actionList(){

$commentmodel = Comment::model(); $cdb = new CDbCriteria();

$count = $commentmodel->count($cdb); $pager = new CPagination($count); $pager->pageSize = 2; $pager->applyLimit($cdb);

$comments = $commentmodel->findAll($cdb); $articlemodel = Article::model(); foreach($comments as $comment){

$comment->aname=$articlemodel->findByPk($comment->aid)->title; $comment->author=User::model()->findByPk($comment->uid)->username; r));

- 38 -

}

$this->render(\"commentlist\

}

4.7.2 删除回帖

点击回帖列表中的删除时,会弹出对话框是否确认删除,确定则删除,取消则返回当前页面。

(1)功能描述

当成功删除一条回帖时,界面如图4-17所示。

图4-17 数据浏览界面

(2)程序实现

此功能是使用sql语句删除,首先实例化common对对象,然后直接根据id使用deletebypk方法删除该id对应下的回帖。下面介绍了该功能Controller层的部分代码。

public function actionDel(){

$commentmodel = Comment::model();

if($commentmodel->deletebypk($_GET['id'])){ Yii::app()->user->setFlash('info','删除成功'); }else{Yii::app()->user->setFlash('info','删除失败'); }

- 39 -

}

$this->redirect(array('comment/list'));

- 40 -

第 5 章 结 论

本文构建了一个基于JSP技术的校园购物系统,全文系统的论述了校园购物系统的概念和其在实际应用中的意义。本文切合该系统的设计背景及意义,针对校园购物系统的系统结构设计、开发模块、功能设计,给出了详细的分析和描述。前台内容和后台管理是校园购物系统的重要方面。在当今网络技术快速发展的时代,网上购物已然成为最受学生欢迎的购物方式之一。

本系统未来要改进的工作主要围绕以下几个方面进行,首先是要加强安全性的设计,保证系统稳定的运行,对数据进行有效的保护,防止系统受到外部的攻击造成不必要的损失。其次,需要强调的本网站并不是一个完整意义上的购物网站,它还缺少支付方式和送货的渠道。功能上也存在有待加强的方面,例如:可以像传统商店和超市一样,使用积分来促销,在消费者每次购物之后根据所消费金额给予会员一定的积分奖励,并可以用积分继续购买商品或兑换礼品;设置普通会员购物一定金额自动升为VIP会员享受更好的待遇等。本网站的功能还要在以后进一步的修改和扩展。当然在设计中还有很多不足的地方。对于这样的软件开发,由于时间关系,没有很深入的进行系统分析,所以在开发过程中遇到了许多棘手的问题,希望在今后的学习中,逐步的进行改进。通过这次的设计,加深了对面向对象思想的一些理解。对于软件工程方面的设计思想也有了更深一步的理解,只有在不断的实践于学习中,才会得到最丰厚的回报。

本网站是介于商家和消费者之间的电子商务网站,指的是商家对个人客户或者商业机构对消费者的电子商务,基本上可以等同于电子零售商业。目前,互联网上已经遍布各种类型的商业中心,提供各种商品和服务。本网站实现了网上商品订购和商品展示,以及对网站会员和订单业务的管理,使得这个网站的运作更具整体性。

- 41 -

参 考 文 献

[1] 潘凯华,刘中华.PHP 从入门到精通(第 2 版)[M].北京:清华大学出版社,2010. [2] 刘中华,潘凯华.PHP 项目开发案例全程实录(第 2 版)[M].北京:清华大学出版

社,2011.

[3] 王志刚,朱蕾.PHP5 应用实例详解:使用ZendFramework&Smarty构筑真正的 MVC

模式应用[M].北京:电子工业出版社,2010.

[4] 陈向辉.由浅入深学 PHP:基础、进阶与必做 300 题[M].北京:电子工业出版社,

2011 .

[5] 何俊斌.从零开始学 PHP[M].北京:电子工业出版社,2011.

[6] 吴津津.PHP 与 MySQL 权威指南[M].上海:机械工业出版社,2011.

[7] 刘剑云,马晨阳.PHP+MySQL网站开发应用从入门到精通.北京:中国铁道出版社,

2010.

[8] 何远亮. 基于LAMP的网络购物系统的设计与实现 [D]. 电子科技大学. 2012 [9] 郭军. 基于MVC模式和ORM对象持久化的PHP开发框架与应用 [D]. 吉林大学. 2010 [10] 齐剂. PHP技术应用于中小企业网站开发 [D]. 吉林大学. 2012 [11] 康贤昆. PHP开发框架的研究与实现 [D]. 天津大学. 2007

[12] AndiGutmans,StigBakken,DerickRethans.PHP 5 Power Programming.Prentice Hall,2004. [13] Jason E. Sweet .Guide to PHP Design Patterns.Publisher,2005.

[14] Constructing Test Suites for k-n Softw are System [J]. Journal of DonghuaUniversity(English

Edition). 2012,3(4):220-229.

[15] Luo,Qingyun Zeng,Lijun,Luo,Qingyun Zeng,Lijun. Make use of PHP to realize and carry

out the advanced procedure on the Web [J]. 微计算机信息. 2006 ,5(4):40-59.

- 42 -

- 43 -

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- fenyunshixun.cn 版权所有 湘ICP备2023022495号-9

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务