首页 基于ThinkPHP的微博系统设计与实现

基于ThinkPHP的微博系统设计与实现

举报
开通vip

基于ThinkPHP的微博系统设计与实现摘要 1 目录 TOC \o "1-3" \h \z \u 基于ThinkPHP的微博系统设计与实现 i 插图目录 iii 表格目录 iv 1. 绪论 1 1.1 项目设计背景及意义 1 1.2 微博系统的现状 1 1.3 论文组织结构 2 2. 相关知识及开发工具介绍 3 2.1 PHP语言简介 3 2.2 ThinkPHP技术简介 3 2.3 MVC模式简介 4 3. 需求分析 5 3.1 用例分析 5 3.3.1 用户用例 5 3.3.2 管理员用例 7 3.2 非功能需求 8 3.3 系统目标 9 4. 系...

基于ThinkPHP的微博系统设计与实现
摘要 1 目录 TOC \o "1-3" \h \z \u 基于ThinkPHP的微博系统设计与实现 i 插图目录 iii 表格目录 iv 1. 绪论 1 1.1 项目设计背景及意义 1 1.2 微博系统的现状 1 1.3 论文组织结构 2 2. 相关知识及开发工具介绍 3 2.1 PHP语言简介 3 2.2 ThinkPHP技术简介 3 2.3 MVC模式简介 4 3. 需求分析 5 3.1 用例分析 5 3.3.1 用户用例 5 3.3.2 管理员用例 7 3.2 非功能需求 8 3.3 系统目标 9 4. 系统设计 10 4.1 概要设计 10 4.1.1系统体系结构 10 4.1.2 系统总体物理结构 10 4.2 详细设计 11 4.2.1 公共模块设计 11 4.2.2 前台模块设计 11 4.2.3 后台模块设计 14 4.3数据库设计 16 4.3.1数据字典 16 4.3.2 ER图 18 5. 系统实现 20 5.1 系统运行环境与配置 20 5.1.1 硬件环境 20 5.1.2 软件环境 20 5.1.3 软件配置 20 5.2 系统的运行实现 21 5.2.1发表博文 21 5.2.2好友博文 22 5.2.3关注好友 23 5.2.4系统推荐 24 5.2.5搜索博文 25 5.2.6系统设置 25 6. 系统测试 27 6.1测试 计划 项目进度计划表范例计划下载计划下载计划下载课程教学计划下载 27 6.2 测试结果 27 总结 30 致谢 31 参考文献资料 32 附录 33 基于ThinkPHP的微博系统设计与实现 文慧 摘 要:随着中国3G技术的成熟和发展,中国移动互联网时代正拉开序幕。作为一种适应移动互联网的新兴的交流工具——“微博”,如雨后春笋般发展,被誉为一场“正在爆发的互联网革命”。本论文提供了一款针对中国市场的多用户型微博系统。本文针对目前国内主流微博产品所具备的主要特点和功能进行需求分析,设计、实现并测试了系统。系统主要由微博模块、话题模块、群组模块、好友模块等四大应用模块构成,采用B/S结构,基于PHP 5.0和MySQL 5.0作为开发环境,采用ThinkPHP三层架构进行开发。 系统是一个功能完备的微博网站,可用于建站运行,也可在此基础上方便地进行二次开发。系统管理员可以根据需要,对于系统灵活地进行各种配置,例如开闭用户注册、过渡关键词、系统名称等,方便建站。 关键字:微博系统,B/S,PHP 5.0,MySQL 5.0,ThinkPHP2.0三层结构 Design and Implement of Micro Blog System Based on ThinkPHP Wen Hui Abstract: With the maturity and development of 3G technology in China, China mobile Internet age is started. Micro blog, as an communication tool extremely adaptable to the emerging mobile Internet, is developing like bamboo shoots after a spring shower, and is known as "an outbreak of the Internet revolution". Through the software project progress, such as system requirement analysis, system design, implementation and testing, this paper analyses the production characters of Domestic mainstream micro blog websites and develops the system.Micro blog system is mainly composed of four modules, such as micro blog module, topic module, group module and follow module, and choose B/S structure and the tree-level structure of ThinkPHP to develop this system, based on the development environment of PHP5.0 and MySQL 5.0. This system is a fully functional micro blog website, which can not only be used to set up websites, but also be used for re-development. Administrators can set the system, such as opening or closing register function, filtering illegal words or not, and changing system name etc. Key words: micro blog platform system, B/S,PHP 5.0,MySQL 5.0, three layers structure of ThinkPHP 2.0 插图目录 TOC \h \z \c "图" 图 1‑1 2010年上半年微博访问量统计 1 图 1‑2 我国微博的发展历程 2 图 2‑1 MVC模型 4 图 3‑1 用户用例图 5 图 3‑2 管理员用例图 7 图 4‑1 微博系统网络拓扑图 11 图 4‑2 关注好友时序图 13 图 4‑3 浏览个人主页时序图 13 图 4‑4 系统推荐时序图 14 图 4‑5 微博设置功能时序图 15 图 4‑6数据库ER图 19 图 5‑1 发表博文 22 图 5‑2 成功发表博文 22 图 5‑3 关注博文界面 23 图 5‑4 关注他(她)界面 24 图 5‑5 取消关注界面 24 图 5‑6 推荐功能界面 24 图 5‑7 搜索博文界面 25 图 5‑8 系统参数界面 26 图 5‑9 微博设置界面 26 图 5‑10 防灌水设置界面 26 图 5‑11 邮箱设置界面 26 表格目录 TOC \h \z \c "表" 表 4‑1 表格清单 16 表 5‑1 硬件环境 20 表 5‑2 软件需求 20 表 6‑1 测试计划表 27 表 6‑2 测试结果 27 1. 2.绪论 1.1 项目设计背景及意义 2009年随着3G(3rd-generation)技术的成熟和牌照的发放,正式拉开了中国移动互联网时代的序幕。作为新生事物的“微博”,以其简单易用性、广泛的影响力、快速传播力等,迎合了互联网时代的发展,迅速成为了互联网新兴起的一种集成化、开放化的互联网社交服务,被誉为一场“正在爆发的互联网革命”。 2010年国内微博迎来发展的春天。微博像雨后春笋般崛起,新浪、搜狐、网易、腾讯、凤凰、和讯、搜房等综合门户均开始推出微博产品。虽然只有几年时间,但中国微博用户量发展迅猛,据上海交通大学舆情研究实验室近日出炉的《2010中国微博年度报告》显示,目前中国微博活跃用户数量仅2010年上半年就已从一千万增至一千二百万,如图1-1所示: 图 1‑1 2010年上半年微博访问量统计 但是,一方面与社区交友网站以及博客等周覆盖人数上亿人的用户规模相比,大多数网民还没有设立自己的微博,微博还不够普及。中国微博市场尚处于用户培养期,用户粘性和用户行为延续性都还需要进一步提高。国内微博市场的巨大潜力还有待开发。另一方面虽然目前已有初步成熟的微博平台,但这些微博平台多是娱乐型性质,针对某一特定领域的内容型、应用型和商务型微博还未有足够发展。 微博系统在此背景下应用而生,它实现了目前多数微博系统所具有的基本功能,提供了一个便捷、开放、可独立部署和运营的微博平台建站系统和解决 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 ,并有助于在此基础上针对某一特定领域进行二次开发 [1,2]。 1.2 微博系统的现状 目前国内主流网络所推出的微博产品无一例外都在学习Twitter的微博结构。因为本地微博是提供中文语言服务,增强了国内微博的互操作性,将比Twitter等国外微博产品更容易吸引中国用户。本地微博的发展经历了三个阶段:引入期、沉寂期和成长期,如图1-2所示: 图 1‑2 我国微博的发展历程 引入期:2007年,是我国微博发展的引入期。这一时期的微博以独立微博网站为主体。2007年5月建立了饭否网,开启了中国的微博时代。随后不久,叽歪网、做啥网相继上线,拥有数亿用户的腾讯也于2007年8月13日推出了腾讯滔滔。 沉寂期:从2008年至2009年,国内微博客发展进入了一年的沉寂期。期间,没有新的微博服务商出现,用户规模增幅也不大。 成长期:从2009年8月开始,国内微博焕发出新的活力。大量微博网站相继上线,用户规模激增,微博成为我国互联网发展的新的热点。国内微博发展进入了快速成长期。 2010年可谓是中国的“微博元年”,各主流网站纷纷主推自己的微博产品,使微博了在中国有了空前发展。但与Twitter的实质性相比还处于早期发展阶段。Twitter即可为个人用户发表每日心情,也可以提高为企业宣传的内容信息。但目前国内微博还是以个人用户为主,发布内容还没有呈现多样化趋势,也就很难催生出产业化的资源。总而言之,目前国内微博还处于发展初期,以娱乐性的内容为主,还有待向内容多元化和商业化方向发展[3,4]。 1.3 论文组织结构 第一章:介绍项目的背景及意义、微博系统的现状。 第二章:介绍相关系统特点、关键技术等相关知识及开发工具介绍。 第三章:对微博系统考查,进行总体的需求分析,通过用列分析详细 说明 关于失联党员情况说明岗位说明总经理岗位说明书会计岗位说明书行政主管岗位说明书 微博系统的功能需求和非功能需求。 第四章:对微博系统进行概要设计、详细设计及数据库设计。 第五章:展示微博系统的各个页面实现情况。 第六章:进行系统测试,首先进行测试分析,然后写出测试 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 ,最后给出测试结果。 最后一部分用来进行小结、致谢并列出参考文献,附录部分主要包括对各个部分的截图。 3.相关知识及开发工具介绍 2.1 PHP语言简介 PHP(Hypertext Preprocessor),是一种 HTML(Hyper Text Mark-up Language)内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛的运用。  PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。PHP安装它可以比 CGI(Common Gate Interface)或者 Perl 更快速的执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。PHP具有非常强大的功能,所有的CGI的功能PHP都能实现,而且支持几乎所有流行的数据库以及操作系统。 至PHP5.0版本时,PHP已经非常全面地支持面向对象的设计思想。PHP由于代码开源免费、开发快捷高效、跨平台性强等特点,已经成为WEB开放主流脚本语言之一,近年来已经出现以PHP技术为核心的大型商业应用案例。故本系统根据系统特点决定采用PHP作为开发语言[5]。 2.2 ThinkPHP技术简介 ThinkPHP是一个性能卓越并且功能丰富的轻量级的开源PHP框架, 是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。ThinkPHP框架有以下特性: 1. 简单易用的MVC模式:模型(M):模型的定义由Model类来完成。Model类位于项目目录下面的LibModel目录。控制器(C):应用控制器(核心控制器)和Action控制器都承担了控制器的角色,区别在于Action控制器完成业务过程,而应用控制器(App类)负责调度控制。Action控制器位于项目目录下面的LibAction目录。视图(V):模板的实现是和框架无关的,做到了100%分离,可以独立预览和制作。模板目录位于项目目录下面的Tpl目录。 2. 编译机制:ThinkTemplate是一个使用了XML标签库技术的编译型模板引擎,支持两种类型的模板标签,使用了动态编译和缓存技术,而且支持自定义标签库。 3. 模型自动验证和处理:系统内置了数据对象的自动验证功能,而大多数情况下面,数据对象是由表单提交的$_POST数据创建。需要使用系统的自动验证功能,只需要在Model类里面定义$_validate属性,是由多个验证因子组成的数组,支持的验证因子格式:验证字段,验证规则,错误提示,验证条件,附加规则,验证时间。 4. 模板引擎:系统内建了一款卓越的基于XML的编译型模板引擎,支持两种类型的模板标签,融合了Smarty和JSP标签库的思想,支持标签库扩展。通过驱动还可以支持Smarty、EaseTemplate、TemplateLite、Smart等第三方模板引擎。 5. AJAX支持:内置AJAX数据返回方法,支持JSON、XML和EVAL格式返回客户端,并且系统不绑定任何AJAX类库,可随意使用自己熟悉的AJAX类库进行操作[6]。 2.3 MVC模式简介 MVC模式(Model-View-Controller,模型—视图—控制器模式)是软件工程中的一种软件架构模式。它把软件系统分为三个基本部分:模型(Model),视图(View)和控制器(Controller)。MVC的结构如图2-1所示: 图 2‑1 MVC模型 说明: 模型(Model):模型包含了应用问题的核心数据、逻辑关系和计算功能,它封装了所需的数据,提供了完成问题处理的操作过程。控制器依据I/O的需要调用这些操作过程。模型还为视图获取显示数据而提供了访问其数据的操作。模型为视图获取显示数据提供了访问其数据的操作。为了实现这种机制,用于监视此模型的视图必须事先在此模型上注册,从而视图可以了解在数据模型上发生的改变。 视图(View):视图部件把表示模型数据及逻辑关系和状态的信息及特定形式展示给用户。它从模型获得显示信息,对于相同的信息可以有多个不同的显示形式或视图。视图通过显示的形式,把信息转达给用户。不同视图通过不同的显示,来表达模型的数据和状态信息。每个视图有一个更新操作,它可被变化-传播机制所激活。当调用更新操作时,视图获得来自模型的数据值,并用它们来更新显示。 控制器(Controller):控制器处理用户与软件的交互操作的,其 职责 岗位职责下载项目部各岗位职责下载项目部各岗位职责下载建筑公司岗位职责下载社工督导职责.docx 是控制提供模型中任何变化的传播,确保用户界面于模型间的对应联系;它接受用户的输入,将输入反馈给模型,进而实现对模型的计算控制,是使模型和视图协调工作的部件。通常一个视图具有一个控制器。 4.需求分析 3.1​ 用例分析 3.3.1 用户用例 用户用例图如图3-1所示。 图 3‑1 用户用例图 用例描述: 名称、标识符 关注好友功能 功能描述 关注好友,获取好友最新博文动态 性能 当用户点击“关注他(她)”按钮时响应时间<2s 输入 用户基本信息:好友ID 操作序列 1.​ 用户点击用户个人主页中的“Follow”按钮; 2.​ 个人主页通过AJAX请求服务器中FollowAction中的addFollow方法; 3.​ FollowAction创建FollowModel,装填并检验好友ID,并调用FollowModel中的addFollow方法,进行数据库更新操作; 4.​ 服务器将操作成功状态返回至个人主页; 5.​ 将个人主页“关注他(她)”更改为“取消关注” 限制条件 1. 必须连接数据库,否则会出现无法连接数据库错误 2. 必须为本站已登录用户 接口 点击用户头像进入此页面 输出 返回用户个人主页 名称、标识符 浏览个人主页功能 功能描述 已登录用户浏览个人主页,包括用户个人信息以及好友最新微博动态 性能 当用户访问个人主页时等待页面时间<5s 输入 用户基本信息:用户账号 操作序列 1.​ 登录认证成功或点击页首“首页”,请求个人主页模块。 2.​ 浏览器请求服务器中IndexAction中的home方法; 3.​ IndexAction创建UserModel,调用其中getUserBaseInfo方法获得用户基本信息,传至view中; 4.​ IndexAction创建BlogModel,调用其中getFollowingBlogs方法获得用户以及好友的最新微博动态,传至view中; 5.​ 视图将数据装填至个人主页模板中并返回至浏览器 限制条件 1. 必须连接数据库,否则会出现无法连接数据库错误 2. 必须为本站已登录用户 接口 登陆认证成功,或界面“首页” 输出 返回用户个人主页 名称、标识符 系统推荐 功能描述 向用户推荐最热微博、最热话题、活跃用户和被关注用户排行 性能 当用户访问推荐时等待页面时间<5s 输入 用户基本信息:无 操作序列 1.​ 浏览器请求服务器中PublicAction中的recommend方法; 2.​ PublicAction创建UserModel,调用其中getActiveUsers方法获得活跃用户基本信息,传至view中; 3.​ PublicAction调用UserModel中getTopFollowedUsers方法获得最热被关注用户的基本信息,传至view中; 4.​ PublicAction创建BlogModel,调用其中getHotBlogs方法获得回复等排名最前的最热微博,传至view中; 5.​ PulicAction创建TopicModel,调用其中getHotTopics方法获得博文数最前的最热话题,传至view中; 6.​ 视图将数据装填至推荐模板中并返回至浏览器 限制条件 1. 必须连接数据库,否则会出现无法连接数据库错误 接口 除登录和注册之外的所有界面右侧。 输出 返回推荐部分 3.3.2 管理员用例 管理员用例图如图3-2所示: 图 3‑2 管理员用例图 用例描述: 名称、标识符 微博设置功能 功能描述 管理员配置微博系统的相关信息,例如微博名称、关闭用户注册等。 性能 信息处理时间<5s 输入 系统配置信息:微博名称、微博域名、微博关键字、微博描述、关闭用户注册、过滤关键词、禁止注册用户名/主页名、网站备案号、微博版权信息等。 操作序列 1.​ 客户端请求服务器SystemSetAction的getBlogSystemSet方法; 1.​ SystemSetAction创建SystemProperty对象,调getBlogSysProperties获取微博设置数据,并传至view中。 2.​ 服务器将微博设置界面返回至客户端; 3.​ 管理员修改配置信息,并点击提交按钮,浏览器请SystemSetAction中的setBlogSysemSet方法。 4.​ SystemSetAction接受请求,创建SystemProperty对象,对数据进行校验,并调用saveBlogSysProperties方法保存信息。 5.​ 服务器将操作成功状态返回至客户端 限制条件 1. 必须连接数据库,否则会出现无法连接数据库错误 2. 必须为本站已登录管理员 接口 点击管理员系统设置中“微博设置”,或提交之后返回。 输出 返回操作成功或失败信息 3.2 非功能需求 1. 可用性 微博系统应对所有使用用户提供及时的服务。系统应保证对24小时运作的客服系统的服务,系统维护时间应计划在服务的最低峰时间。 2. 响应时间 进行数据查询时,当处于系统使用高峰期时应保证系统具有对95%的数据交互查询、更新提供3秒或更短响应时间的支持,当处于系统使用低峰期时应保证系统具有对95%的数据交互查询、更新提供2秒或更短响应时间的支持。当进行数据添加、更新时,系统内部应提供对请求处理的来源及响应时间的监控机制。系统响应时间因不同外部数据源和使用系统的通讯和接口情况而有所差异。 3. 可靠性 微博系统不应在正常操作中丢失数据,当用户正在使用系统时,系统不应瘫痪,应对所有的使用人员提供每年365天,每天24小时,每天3班的系统监控支持,而每月突发的宕机时间不超过4小时。 4. 易于使用性 微博系统应有操作、故障排除手册来帮助系统管理人员来快速解决系统问题。系统、管理/操作界面应易于使用, 对操作人员的培训时间保持在较短的时间内。 5. 安全性 微博系统中提供普通用户和管理员权限两项安全性身份验证。其中,管理员可对普通用户进行授权操作,以便方便系统管理。 6. 备份和灾难的及时恢复 微博系统应每天对所有运作相关的数据进行备份,以及备份的微博系统,以防止运行系统瘫痪时能及时使用备份数据库重新提供系统的服务。 3.3 系统目标 本文是针对目前国内主流微博产品所具备的主要特点和功能进行设计,具有对微博、话题、群组、好友等完整的功能,应具备如下特点: 1.​ 完备的系统功能 本系统是一个功能完备的微博网站,可用于建站运行,也可在此基础上方便地进行二次开发。 2.​ 灵活的系统设置 系统管理员可以根据需要,对于系统灵活地进行各种配置,例如开闭用户注册、过渡关键词、系统名称等,方便建站。 3.​ 个性的个人管理 用户不仅可以设置昵称、性别、头像等基本信息,而且可以设置个人首页网址等个性化的信息。 根据本文应具备的特点,现提出主要目标如下: 1.​ 实现基础功能,便于二次开发。任何一款互联网产品都有特定应用领域,特定用户群体及其需求。而本系统的定位于实现目前多数微博系统所具备的基本功能,并使其框架结构具备灵活、易用性、扩展性等特点,以便其它用户在此基础上针对具体应用进行二次开发。 2.​ 博文应具备多媒体形式,含文字、图片、表情等。微博的主要特点之一在于其具有“平民化”的特点,因而博文需要承载丰富的内容。这便要求对于博文的信息呈现具有多样的形式。所以除了文字以外,还需要有图片等多媒体呈现形式,和表情、分享等为满足“娱乐化”的功能。 3.​ 本系统应该具备向用户推荐好友、博文、话题等功能。当新用户注册登录后,需要有人性化的引导过程,其中应当包括推荐好友功能。另外,推荐好友、博文、话题等,应当放到系统醒目位置,以便更加人性地服务用户,增加用户体验。 4.​ 本系统提供关注好友功能以及群组功能。微博平台主要以广播用户消息为主,故采用单向关注,即允许在未经被关注者同意之下对其关注。而群组功能,则类似于讨论组,由管理员针对某一特定关系群体创建,可由用户对群组广播消息,其它用户可查看群组消息。 5.​ 用户提供对博文多种多样的操作,包括顶、踩、评论等操作功能。当关注者对于某条博文非常感兴趣或观点而希望能够表达其想法时,本系统应当提供一些简单、便捷的使用方式;系统并可据此从而决定推荐关注度非常高的博文给所有用户。 6.​ 允许用户就某一话题发表相关博文。由于博文限定140字,内容虽小,但数据量非常大,难以形成针对某一话题的相关应用。故需提供话题功能,以便系统对博文进行良好的组织,并从而为用户提供话题搜索等相关功能。 5.系统设计 4.1​ 概要设计 4.1.1系统体系结构 本文所采用ThinkPHP框架作为系统架构。ThinkPHP框架的设计采用MVC设计模式。在ThinkPHP中,Action对应MVC控制器,Model对应MVC模型,View对应MVC视图。ThinkPHP的MVC的结构如下所示: 模型(Model):ThinkPHP模型包含基本Model类和AdvModel类。基本的CURD、ActiveRecord模式、连贯操作和统计查询,一些高级特性被封装到另外的模型类中,例如AdvModel高级模型类完成了一些包括文本字段、只读字段、序列化字段、乐观锁、多数据库连接等模型的高级特性,ViewModel视图模型类完成了模型的视图操作,RelationModel关联模型类完成了模型的关联操作。基础模型类Model的设计非常灵活,无需进行任何模型定义就可以进行相关数据表的ORM和CURD操作。本文只涉及到基本Model类。 视图:ThinkPHP视图包含View视图和模板文件两部分。视图类负责Action控制器类和模板文件之间沟通,Action类把数据通过View类传递到模板文件,而模板文件把接收到的数据转换成相应的数据格式显示。如果模板文件使用了某些模板引擎例如Smarty、ThinkPHP Template等,进行标签定义,而非使用原生的PHP语法,那么在模板输出的过程中还需要引入模板解析。如果开启ThinkPHP缓存功能,则ThinkPHP将生成一个编译后的模板缓存文件,就不再需要在每次输出模板的过程中都进行解析操作,提高非实时页面访问效率。 控制器:ThinkPHP控制器就是模块类,通常位于项目的LibAction目录下面。类名就是模块名加上Action后缀。制器类必须继承系统的Action基础类,这样才能确保使用Action类内置的方法。本文采用ThinkPHP系统的默认项目映射方法,例如当我们访问URL:/myApp/index.php/Index/index/时,ThinkPHP将访问IndexAction中的index方法。Action基础类包含已始初始化的View类变量,当调用View时直接调用该变量进行传值操作。ThinkPHP提供的快速A方法用于快速定位并创建相应Action。 4.1.2 系统总体物理结构 拥有不同权限的系统管理员、用户通过Internet连接到微博系统的Web服务器,Web服务器受外部防火墙保护,数据库服务器为Web服务器提供数据库支持,其受到内部防火墙的保护。微博系统的系统网络拓扑图如下图4-1所示: 图 4‑1 微博系统网络拓扑图 4.2 详细设计 4.2.1 公共模块设计 公共模块定义和实现各个模块公共使用到的全局变量和函数,这样大大节约了编程时间及编程量,也为后期维护带来很大方便。公共模块主要存放在目录/Common下的common.php文件中,包含字符串处理和过滤函数、获取用户信息函数、处理时间函数、处理博文信息函数、获取用户登录状态函数等。其中,以过渡HTML特殊标签函数为例,代码如下所示: 4.2.2 前台模块设计 1.​ 注册 用户注册时,包括注册登录账号、个人首页、用户密码三项信息。其中,注册个人首页为用户定置个性化的个人首页地址,为“服务器名/个人首页”的URL形式。 2.​ 登录 登录主要功能是验证用户身份并登录系统。登录系统时,若为已注册用户,则输入登录名、密码和验证码并提交,系统进行检验,若其验证码输入正确且登录名和密码同数据库中的一致,则进入个人主页;若不一致,则提示错误原因,提示用户检查登录名和密码或验证码错误,重新登录。若用户没有注册,则需完成填写新用户的相关资料,完成用户注册后,再进行登录。 3.​ 管理用户信息 管理用户信息主要功能是维护用户相关的信息。在管理用户信息模块中,分为基本信息、头像设置、推荐自己等三个子模块。基本信息模块用于对用户昵称、积分、性别和自我介绍等信息的显示与维护,其中自我介绍限定140字,用户昵称限定10个字以内的数字、字母和汉字的组合。头像设置用于上传并修改用户头像。其中,推荐自己功能,可以将用户设置成为推荐好友,同时扣除一定积分,系统将用户放置到查找好友模块的推荐好友中。 4.​ 管理好友 管理好友包括关注好友(时序图如图4-2所示)以及取消关注两项功能。关注好友功能向用户提供对其它用户进行关注其微博动态的功能,被关注者的微博信息将显示在关注者的最新博文以及好友博文中。 5.​ 查找好友 查找好友向用户提供用户信息以便用户查找关注好友的功能,包括向推荐好友和最新用户两大模块。其中,推荐好友在管理用户信息中设置。 6.​ 管理博文 管理博文主要功能是向用户提供对博文进行的各种相关操作。在管理博文中,分为发表博文、删除博文、评论博文、评价博文等五项功能。其中,发表微博功能用于已登录用户发表微博,其中微博可含有表情、分享、图片、话题等内容。评论博文功能用于已登录用户对博文进行评论。评价功能,用于已登录用户对博文进行顶、踩、路过等评价。删除博文和评论需扣除一定积分。 7.​ 管理话题 话题模块包括发表话题博文、浏览话题列表、浏览话题博文。 8.​ 管理群组 管理群组向用户提供针对某一特定主题长期进行交流的群组功能,包括浏览群组列表、浏览群组博文、发表群组博文三项功能。浏览群组列表功能是显示本系统所有的群组列表信息。浏览群组博文用于对特定系统群组读取并显示与该群组相关博文。 9.​ 浏览个人主页 浏览个人主页(时序图如图4-3所示),主要包括查看用户个人基本信息,例如头像、账号、个人主页地址等,以及关注者的最新微博动态。 10.​ 查看系统首页 查看系统首页,主要包括查看系统推荐(时序图如图4-4所示)和浏览最新微博。其中,系统推荐为向用户推荐最热博文、最热话题、活跃用户以及用户关注排行。最新微博,包括自己和关注者的最新微博动态。 图 4‑2 关注好友时序图 图 4‑3 浏览个人主页时序图 图 4‑4 系统推荐时序图 4.2.3 后台模块设计 1.​ 管理用户 管理用户向管理员提供查看和管理用户的相关信息功能,包括删除用户、审核用户、授予权限、增加用户等功能。如果系统配置中注册审核功能开启时,则只有当管理员审核用户后,该用户权限才升为普通用户;否则未审核用户只有登录、浏览等权限,无权进行发表微博、评论等操作。本系统角色仅有普通用户和管理员两种,授予权限可变更用户角色。 2.​ 设置系统配置 设置系统配置包括系统参数、微博设置(时序图如图4-5所示)、积分设置和防灌水设置四项功能。系统参数功能用于查看服务器系统参数情况,例如操作系统类型、服务器域名、服务器剩余空间等。微博设置功能主要用于配置微博系统参数,例如系统名称、系统描述、启闭邀请注册功能、默认积分等。防灌水设置主要用于防止恶意用户操作行为,包括配置是否启用人工审核、邮箱激活、同IP注册受限时间、新用户发言受限时间等参数。积分设置功能查看管理积分用例描述。 3.​ 管理群组 管理群组的主要功能是对群组进行查看、修改和新增等管理。群组由管理员为针对某一特定主题的群体所创建,并可修改群组名称、群组头像等群组信息。 4.​ 管理博文 管理博文的主要功能是对用户博文进行浏览、审核、删除等管理操作。当博文内容涉及政治、色情等非法信息时,管理员可对某进行删除操作。如果系统配置中审核博文的功能启用,则博文需管理员审核才为其它用户所见。 5.​ 管理话题 管理话题的主要功能是对话题内容进行查看并修改话题、新增话题等管理操作。由于已注册并登录用户都有权发表新话题,从而会导致话题不规范、同一话题多种表述等情况,故管理员有修改不规范话题的操作权限。新增话题用于引导和新增一些热门话题的讨论。 6.​ 管理积分 管理积分包括积分设置和管理积分日志等两项功能。积分设置是设置积分项值、启用情况等积分系统配置。积分配置项中有三项加分操作:登录系统、发表微博、发表回复,以及二项减分操作:删除微博和删除回复。积分系统配置可灵活配制各项增减分值。积分日志用于记录用户增减积分记录,系统管理员对其有删除操作权限。当日志记录删除时,用户该项积分也将被扣除。 图 4‑5 微博设置功能时序图 4.3数据库设计 4.3.1数据字典 微博系统需要管理的内容包括用户、积分、微博、评论、话题、群组、好友等微博系统信息,以及管理员、微博设置、积分设置、邮箱设置等后台管理系统信息。微博系统采用MySQL数据库作为数据存储,因为MySQL是一个开放源码的小型关联式数据库管理系统,具有普及性、简单性、低成本、良好支持、灵活性和可扩展性等特点,与本系统采用的PHP开发语言有着良好的融合,是一般Web系统的经典配置。通过对系统信息进行分析,可以得到微博系统的数据库信息特点: 1本系统用户分为普通用户和管理员用户,分别用于使用本系统以及管理本系统。 2只有普通用户经验证后可以操作对本系统进行所有操作,而未注册用户只能浏览微博、话题等相关信息。 3用户具有微博管理、话题管理、好友管理、个人信息管理等功能需求。管理员具有微博管理、话题管理、群组管理、用户管理、积分管理等功能需求。 在数据库信息特点的基础上,可以得到表格清单如下表4-1所示: 表 4‑1 表格清单 名称 代码 管理员 Admin 用户 user 博文 blog 话题 Topic 话题_博文 Topic_blog 话题组 Group 附件 Attention 积分 Score 角色 Role 用户_角色 User_role 角色_权限 Role_perm 权限 Permission 操作 Option 资源 Resource 系统属性 Sys_property 关注好友 follow 以下是每个清单的数据字典: 1.管理员 含义说明:描述管理员的性质 组成:adminID、account、password、login_ip、login_time、create_ip、create_time 2.用户 含义说明:描述用户的性质 组成:userID、account、password、mail、homepage、icon、score、login_ip、login_time、create_ip、create_time 3博文 含义说明:描述用户的性质 组成:blogID、content、step_count、pass_count、reply_count、status、create_time、create_user 备注:create_user是user的外键 4话题 含义说明:描述话题的性质 组成:topicID、content、create_time、create_user 备注:create_user是user的外键 5话题_博文 含义说明:描述话题和博文之间的关系 组成:topicID、blogID、blog_count 备注:topicID、blogID是外键 6话题组 含义说明:描述话题讨论组的性质 组成:groupID、group_name、sort_index、icon、create_time、is_default、create_admin 备注:create_admin是admin外键 7附件 含义说明:描述博文上传相关附件的性质 组成:attentionID、type、create_time、blogID 备注:blogID是blog表的外键 8积分 含义说明:描述用户相关积分的性质 组成:scoreID、type、number、option、create_time、userID 备注:userID是user表的外键 9角色 含义说明:描述系统角色的性质 组成:roleID、parentID、role_name、role_desc 10用户_角色 含义说明:描述用户和角色之间所属关系的性质 组成:userID、roleID 备注:userID是user表的外键,roleID是role表的外键 11角色_权限 含义说明:描述角色和权限之间关系的性质 组成:roleID、permID、create_time 备注:roleID是role表的外键,permID是permission表的外键 12权限 含义说明:描述用户权限的性质 组成:permID、perm_name、perm_desc、optionID、resourceID 备注:optionID是option表的外键,resourceID是resource表的外键 13操作 含义说明:描述用户操作的性质 组成:optionID、option_name、option_desc 14资源 含义说明:描述系统资源的性质 组成:resourceID、resource_name、resource_desc 15系统属性 含义说明:描述用户的性质 组成:key、value 16.关注好友 含义说明:描述关注者与被关注者之间的关系 组成:followID、followee、follower 备注:followe和follower 是user表的外键 4.3.2 ER图 通过对数据库进行需求分析后,利用PowerDesigner对数据库的逻辑模型进行设计,如图4-6所示,实体中元素均略去。 图 4‑6数据库ER图 6.系统实现 5.1 系统运行环境与配置 5.1.1 硬件环境 硬件环境如表5-1所示: 表 5‑1 硬件环境 需求名称 详细要求 CPU Intel(R) Core(TM)2 Duo CPU P7370 @2.00GHz 内存 2GB 硬盘 320GB 网卡 10M/100M 光驱 无要求 软驱 无要求 显示器 无要求 5.1.2 软件环境 软件环境如表5-2所示: 表 5‑2 软件需求 需求名称 详细要求 操作系统 Windows 98/2000/xp/2003、Linux WEB浏览器 IE6.0、IE7.0、opera、Maxthon 编程语言 PHP 5.0 开发平台 EditPlus 4.0, Zend Studio 7.0 服务器 Apache 2.0 数据库设计工具 Sybase Power Designer 10.0 数据库 MySQL 5.0 建模工具 Rational Rose 5.1.3 软件配置 为了正确地部署和运行系统,需要对系统进行软件的配置。 路径配置存放于项目根目录下index.php文件中,主要用于定义框架类库、项目名称、项目路径,并启动框架入口。Index.php中代码如下所示: 项目信息配置存放在项目中/Conf目录下config.php文件中,主要包含数据库连接信息,图片、头像等目录路径信息,缓存设置信息,用户验证标识信息等项目配置信息。config.php中代码如下所示: 5.2​ 系统的运行实现 本系统实现了前台系统和后台系统二个子系统。前台系统所实现的功能有:登录/注册、博文模块、系统推荐、话题模块、好友模块、群组模块、系统首页、个人首页、用户信息管理等八个功能模块。后台系统实现了登录/注销、登录用户管理、群组管理、系统配置、积分管理、博文管理和话题管理。现以博文模块中的发表博文、好友博文,好友模块中的关注好友,系统推荐等为例,说明前台系统实现。以系统设置模块为例,说明后台系统实现。 5.2.1发表博文 发表博文,如图5-1以及5-2所示,可以插入表情、链接、图片和话题;并有限制博文字数的检测功能。 当博文发表框加载完毕时,JS中的countWords、addFace、shareLink、addTopic、onAddBlogSubmit等方法分别对博文输入框、表情链接、分享链接、图片链接、话题链接以及博文提交按钮进行绑定事件。当点击“侃一下”时,onAddBlogSubmit检验博文字数是否为空或超过140字,如果检验成功,则利用AJAXRequest请求BlogAction中的AddBlog方法。该方法中,调用公共模块中函数filterSpecial过滤script标签以及处理HTML标签,并调用filterLegalWords过滤非法词汇。处理过的BlogAction创建BlogModel类,用addBlog方法进行处理,如果操作成功,则返回博文ID。BlogAction中调用parseTopics抽取话题并返回话题数组,若存在话题,则创建TopicModel中insertTopic将话题插入。接着BlogAction调用公共函数HTML_getBlog进行博文处理,并将博文HTML片段返回给AJAXRequest进行显示。若出错,则将错误信息返回进行报错。Action查询addBlog关键代码如下所示: 图 5‑1 发表博文 图 5‑2 成功发表博文 5.2.2好友博文 好友博文模块位于个人主页中部左侧,使用iframe异步加载和显示好友博文动态, 如图5-3所示。浏览器向IndexAction的home方法提出请求,请求中包含页号参数,否则默认页号为1,访问的URL地址例如:/index/home/p/2。Home方法中通过公共模块getUserID方法获取当前用户ID,创建BlogModel,并调用getFollowingBlogs获得被关注者的博文动态。Home方法将被关注者的博文信息传至view,并由view将数据填装至followedBlogs.tpl中,并返回客户端。 图 5‑3 关注博文界面 5.2.3关注好友 已登录用户可使用该项功能关注好友和取消关注好友,如图5-4、图5-5所示。当对某用户进行关注之后时,该用户最近更新的博文将显示在对其关注者的个人主页上。 当关注好友时,“关注他(她)”和“取消关注”控件都同时存在于页面之中,绑定addFollow函数,利用JS实现一个显示时另一个隐藏。 利用AjaxRequest请求FollowAction中的addFollow方法。FollowAction创建FollowModel,并调用FollowModel中的addFollow方法进行数据操作。当操作成功时,调用ThinkPHP基类Action中的json方法返回操作状态。当客户端收到AjaxResponse后,根据返回状态将被关注度加1,将关注控件换成“取消关注”。其中,JS函数addFollow的关键代码如下: 图 5‑4 关注他(她)界面 图 5‑5 取消关注界面 5.2.4系统推荐 系统推荐功能,如图5-6所示,包括推荐最热微博、最热话题、活跃用户以及用户关注排行等四项推荐。最热微博,由顶、踩、路过、评论的总数值衡量。活跃用户,由发表博文数量值衡量。最热话题,由对该话题所发微博数量值衡量。用户关注排行由被关注度衡量。 系统推荐模块位于系统首页中部右侧。浏览器请求PublicAction中的recommend方法,创建BlogModel并调用getHotBlogs获取最热博文;创建UserModel并调用getActiveUsers获取活跃用户,调用getTopFollowedUsers获取用户关注排行榜信息;创建TopicModel并调用getHotTopics获取最热话题信息。PublicAction调用View中的assign方法将这些信息传至recommend.tpl模板中,并返回给浏览器。 图 5‑6 推荐功能界面 5.2.5搜索博文 搜索博文,如图5-7所示。当用户在搜索栏中输入关键字,多个关键字用空格隔开,点击“Search”之后,系统将显示内容与关键字相关的博文。如果博文数量超过20条,则进行分页显示。 用户搜索填好搜索关键字之后,请求SearchAction中searchBlog方法提出请求。searchBlog方法调用公共模块函数str_split将搜索的关键字进行分割返回关键字数组,并调用SearchModel中的searchBlog方法进行博文搜索。SearchModel利用关键字数组生成查询语句,创建BlogModel进行数据库搜索,并返回博文结果集。SearchAction将博文结果集传至view中。View负责将数据填装至searchResult.tpl中并返回给浏览器。 图 5‑7 搜索博文界面 5.2.6系统设置 系统设置,界面如图5-8所示,包括系统参数、微博设置、灌水设置、邮箱设置等四项子设置。 查看系统参数,用于查看系统信息,包括操作系统、运行环境、PHP运行方式、ThinkPHP版本、上传附件限制、执行时间限制、服务器时间、服务器域名/IP、剩余空间、register_globals、magic_quotes_gpc、magic_quotes_runtime、mysql数据库、odbc数据库、SQL Server数据库、SMTP、GD Library、XML、FTP、站点物理路径、Sendmail、上传文件大小限制、显示错误信息、POST提交内容限制、allow_url_fopen、Zlib、内存限制、Zend支持、服务器端口。 微博设置,界面如图5-9所示,用于设置微博系统的可配置信息,包括微博名称、微博域名、安装路径、微博关键字、微博描述、关闭用户注册、启用rewire、禁止注册用户名/主页名、过滤关键词、系统缓存时间、启用邀请注册、邀请注册积分、用户默认积分等信息。 防灌水设置,界面如图5-10所示,用于防止用户恶意注册灌水等,包括人工审核、同IP注册用户限制、新用户发言时间、游客权限等五项设置。当人工审核开启时,新用户注册之后必须经过管理员人工审核才能激活。若同IP注册用户限制设置,则同一IP已注册用户必需经过限制时间才能再次注册。若新用户发言时间设置,则新注册用户必需经过限制时间才能发表微博、评论等操作。若游客开启,则未登录用户可以对微博系统进行浏览操作。 邮局设置,界面如图5-11所示,用于设置系统邮箱,配置SMTP相关信息,用于系统邮件的发送。 图 5‑8 系统参数界面 图 5‑9 微博设置界面 图 5‑10 防灌水设置界面 图 5‑11 邮箱设置界面 7.系统测试 6.1测试计划 软件测试是软件开发周期中一个极其重要的阶段,测试的目的是在软件投入生产性运行之前,尽可能多地发现软件中的错误。目前软件测试仍然是保证该软件质量的关键步骤,它是对软件规格说明、设计和编码的最后复审。软件测试在软件生命周期中横跨两个阶段。通常在编写出每个模块之后就对它做必要的测试(称为单元测试),编码和单元测试属于软件生命周期的同一个阶段。在这个阶段结束之后,是对这个系统进行的各种综合测试。为了提高检测出错的几率,使测试能有计划地,有条不紊地进行,我编制了测试计划。内容如下表6-1所示: 表 6‑1 测试计划表 测试名称 测试进度 测试内容 测试目的 备注 模块功能测试 在编码阶段完成 各模块的功能 编码的正确性等 个人测试 数据库测试 编码完成后一周 数据库的读写 数据库的读写是否正确 个人测试 跨平台测试 编码完成后一周 在不同的平台上使用该系统 测试系统的兼容性 个人测试 综合操作测试 编码完成后一周 对系统各个功能的综合测试 找出系统的bug 请人测试 6.2 测试结果 经过对微博系统的进行测试分析之后,用以上测试方法对其进行测试,测试的结果如下表6-2所示: 表 6‑2 测试结果 测试模块 测试点描述 重要等级 测试结果 备注 用户登录/注册 测试1.当关闭注册功能时,是否不能注册。2.当启用注册功能开启时,用户能否正常登录和注册 重要 通过测试 无 博文模块 测试1.已登录用户能否对于博文进行发表博文2.能否对于博文进行回复操作3. 能否对于博文进行评价等4. 是否能搜索博文 重要 通过测试 无 群组模块 测试用户能否对于浏览群组列表、浏览群组博文和发表群组博文 重要 通过测试 无 话题模块 测试1. 能否正常发表话题2. 能否正常浏览话题列表3. 能否正常浏览话题博文 重要 通过测试 无 好友模块 测试能否进行关注他人,并关注相关博文 重要 通过测试 无 推荐模块 测试能否进行推荐用户、话题和博文 一般 通过测试 无 维护用户信息 测试能否更新用户基本信息、头像设置、密码修改、成为推荐用户和邀请注册码 一般 除邀请注册外,其它通过测试 无 用户注销 测试用户能否正常退出系统 重要 通过测试 无 管理员登录 测试管理员能否正常登录 重要 通过测试 无 用户管理 测试1. 能否正常查看用户列表2. 能否正常查看用户详细3. 能否正常审核用户4. 能否正常添加用户5. 能否正常删除用户 重要 通过测试 无 系统设置 测试1. 能否正常查看系统运行参数2. 能否正常进行微博设置3. 能否正常进行积分项设置4. 能否正常进行防灌水设置 重要 通过测试 无 积分管理 测试能否查看积分日志和删除积分记录 一般 通过测试 无 话题管理 测试能否查看话题列表、更名话题、增加话题和删除话题 一般 通过测试 无 博文管理 测试能否查看博文列表、审核博文、浏览博文详细信
本文档为【基于ThinkPHP的微博系统设计与实现】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_349739
暂无简介~
格式:doc
大小:2MB
软件:Word
页数:39
分类:互联网
上传时间:2011-07-01
浏览量:24