个人博客系统的管理与制作.docx

上传人:b****8 文档编号:10046776 上传时间:2023-02-08 格式:DOCX 页数:44 大小:900.15KB
下载 相关 举报
个人博客系统的管理与制作.docx_第1页
第1页 / 共44页
个人博客系统的管理与制作.docx_第2页
第2页 / 共44页
个人博客系统的管理与制作.docx_第3页
第3页 / 共44页
个人博客系统的管理与制作.docx_第4页
第4页 / 共44页
个人博客系统的管理与制作.docx_第5页
第5页 / 共44页
点击查看更多>>
下载资源
资源描述

个人博客系统的管理与制作.docx

《个人博客系统的管理与制作.docx》由会员分享,可在线阅读,更多相关《个人博客系统的管理与制作.docx(44页珍藏版)》请在冰豆网上搜索。

个人博客系统的管理与制作.docx

个人博客系统的管理与制作

专科毕业论文(设计)

 

题目个人博客管理系统设计与制作

姓名

院系电气信息工程学院

专业计算机应用技术

学号

指导教师

 

摘要

博客近两年来在国内的发展非常快速,它可作为使用者个人或工作当中的文章、连结、照片的分享平台,逐渐成为以内容为主的新兴网路媒介,并延伸至行销、商业推广等主流应用。

VXBlog博客系统开发目的旨在建立一个以PHP与MySQL为基础,功能简单、结构灵活而且轻量、精致的内容管理系统(CMD)。

V.Vibrant,意指充满生气的、精力充沛的,X.eXquisite、eXtensible,意指精致的和可扩展的;Blog顾名思义就是网络日志的意思。

网络日志管理为本系统的主要应用目标,同时能够满足不同用户群(如博客用户、主题开发用户、功能插件开发用户)的多变需求,提供足够灵活的接口是实现上述需求的关键。

本论文主要介绍了博客系统的MVC三层模式与插件式设计的混合开发架构的实现,阐述自己对MVC开发模式的一点看法,并提出了一种扩展办法,在结构化层次、理清系统业务模型和优化业务模型的重用性的基础上,结合插件式设计式开发,简化开发模型,降低框架的复杂度,让框架更容易实现,并提高扩展的灵活性,以更好的松耦合方式开发构件,使得系统适应多变的业务需求。

关键词:

博客;开发目的;MVC三层模式

目录

摘要I

目录II

前言1

第1章系统分析2

1.1系统设计目的2

1.2功能简介2

1.3系统需求2

1.3.1功能需求2

1.3.2性能需求3

1.4用例分析3

1.4.1登陆管理用例3

1.4.2主程序用例4

1.4.3文章管理用例4

1.4.4评论管理用例5

1.4.5分类管理用例5

1.5运行环境6

第2章数据库设计8

2.1数据库设计分析8

2.2数据表的建立8

2.3E-R图11

第3章功能模块设计13

3.1MVC模式分析13

3.2插件式设计分析13

3.3开发设计模型的改进14

3.3.1系统整体模式架构15

3.3.2插件式开发架构15

3.4模块结构16

3.4.1标签模块(helpers/template-tags)16

3.4.2业务模块16

3.4.3控制模块16

3.4.4主驱动模块20

3.5核心模块设计21

第4章部分功能实现23

4.1语言互译和安装功能23

4.2后台管理24

4.2.1设置面板24

4.2.2用户管理24

4.2.3文章管理25

4.2.4评论管理26

4.2.5分类管理26

4.3插件式开发26

4.3.1可视化插件实现26

4.3.2表情插件实现28

第5章性能测试31

5.1测试说明31

5.1.1测试平台环境31

5.1.2主要测试业务:

31

5.2基准测试统计31

结论33

致谢34

参考文献35

前言

WEBLOG是WEBLOG的缩写,中文意思是"网络文章",简称“网志”,后来缩写为BLOG,而BLOGGER(博客)则是写BLOG的人。

具体说来,博客(BLOGGER)这个概念解释为使用特定的软件,在网络上出版、发表和张贴个人文章的人。

一个Blog就是一个网页,它通常是由简短且经常更新的Post所构成;这些张贴的文章都按照年份和日期排列。

Blog的内容和目的有很大的不同,从对其他网站的超级链接和评论,有关公司、个人、构想的新闻到日记、照片、诗歌、散文,甚至科幻小说的发表或张贴都有。

许多Blogs是个人心中所想之事情的发表,其它Blogs则是一群人基于某个特定主题或共同利益领域的集体创作。

Blog好象对网络传达的实时讯息。

撰写这些Weblog或Blog的人就叫做Blogger或Blogwriter。

在网络上发表Blog的构想使于1998年,但到了2000年才真正开始流行。

起初,Bloggers将其每天浏览网站的心得和意见记录下来,并予以公开,来给其它人参考和遵循。

但随着Blogging快速扩张,它的目的与最初已相去甚远。

目前网络上数以千计的Bloggers发表和张贴Blog的目的有很大的差异。

不过,由于沟通方式比电子邮件、讨论群组更简单和容易,Blog已成为家庭、公司、部门和团队之间越来越盛行的沟通工具,因为它也逐渐被应用在企业内部网络(Intranet)。

本博客系统中,是采用了MVC设计模式,它是一个经过考验的真正的软件设计模型,它可以使程序成为可维护的、模块化的和快速开发的包。

使用分离的模型(Model)、视图(View)和控制器(Controller)组织的程序是轻便的。

新的特性很容易就被加入,旧的程序换上新的外观也是一下子的功夫。

模块化和分离的设计使得开发者和设计者能够同时工作,这包括了快速原型的能力。

分离的设计令开发者可以修改应用的一部分而不会影响到其它部分。

第1章系统分析

1.1系统设计目的

本博客系统设计目的旨在建立一个以PHP与MySQL为基础,功能简单、结构灵活而且轻量、精致的内容发布系统。

网络日志管理为本系统的主要应用目标,同时能够满足不同用户群(如博客用户、主题开发用户、功能插件开发用户)的多变需求,提供足够灵活的接口是实现上述需求的关键。

1.2功能简介

1、安装部署:

友好的快速安装程。

2、内容管理功能:

本系统的主要内容。

3、插件式开发功能:

事件处理、过滤器处理机制。

4、国际化功能:

多语言互译。

1.3系统需求

1.3.1功能需求

1、内容管理需求:

(1)文章管理:

添加文章、修改内容、删除文章、密码保护、文章统计。

(2)分类管理:

添加分类、修改分类、删除分类、分类统计。

(3)评论管理:

新增评论、修改评论、审核评论、删除评论、评论统计。

2、用户基本需求:

注册、登陆、修改个人信息、取回密码、注销。

3、用户群体需求:

(1)博客用户:

除提供内容管理功能外,还提供博客基本设置,前、后台主题跟换功能。

(2)主题开发用户:

为主题开发用户提供称为模板标签(templatetags)的模板接口,使主题开发与程序分离。

(3)功能插件开发用户:

为功能开发用户提供足够的钩子(Hooks)即插件接口,和插件API,能让开发人员扩展系统功能。

1.3.2性能需求

1、响应时间与内存使用量:

(1)忽略网络环境因素、主题模板及功能插件运作的因素,以本地测试为准。

(2)数据库安装响应:

时间2秒内,内存使用量最高上限8,000,000bytes。

(3)前台浏览响应时间:

时间0.8秒,内存使用量最高上限9,000,000bytes。

(4)后台操作响应时间:

时间0.9秒,内存使用量最高上限9,000,000bytes。

2、数据库的优化、备份:

提供所有数据表的SQL语句备份,SQL语句的查询数据备份。

MySQL数据库的优化处理。

3、安全性:

后台的界面访问、路径访问、操作执行的前后,均受登陆会话管理和用户权限管理的控制。

开启全局的跨站点攻击(XSS)过滤。

1.4用例分析

1.4.1登陆管理用例

登陆管理,如图1.1所示。

图1.1登陆管理用例图

本用例允许用户登陆管理相关的内容,进行登陆、注册、修改用户个人资料、注销、取回用户密码等基本操作。

1.4.2主程序用例

主程序用例,如图1.2所示。

图1.2主程序一级用例图

用户进行登陆认证后,在进行文章管理,分类管理,评论管理,用户管理等方面前验证用户权限,才能执行相关操作。

1.4.3文章管理用例

文章管理用例图,如图1.3所示。

图1.3文章管理用例图

1、系统从文章管理中,提取编辑文章内容,文章发布,删除文章等功能,让文章管理者进行对其选择操作。

2、编辑文章内容,不一定需要修改文章的分类。

3、一旦文章管理者完成编辑文章内容,文章发布,删除文章等方面的操作后,系统就自动对文章进行统计分类数目。

1.4.4评论管理用例

评论管理用例,如图1.4所示。

图1.4评论管理用例图

1、文章发表后,系统向外部浏览者提供对文章进行评论的功能,同时,文章管理者对此也具有发布评论,编辑评论,修改评论状态,删除评论等方面的操作。

2、对于文章管理者在编辑评论的操作上,不一定对修改评论的状态造成影响。

3、在外部浏览者对文章进行评论后,或文章管理者进行的发布评论,修改评论状态,删除评论等操作后,系统就会自动进行统计评论的数目。

1.4.5分类管理用例

分类管理用例,如图1.5所示。

图1.5分类管理用例图

1、文章管理者,在文章的分类管理中,可以进行添加分类,编辑分类,修改上级分类,删除分类等方面的操作。

2、文章管理者对文章进行编辑分类的操作时,不一定执行修改上级分类。

3、当文章管理者删除分类后,系统就会自动重新归类原分类文章,再统计新分类文章的数目。

1.5运行环境

1、硬件环境

(1)服务器端:

服务器端的最低配置是由建立站点所需的软件来决定的,在最低配置的情况下,服务器的性能往往不尽人意,现在硬件性能已经相当出色,而且价格也很便宜,因此通常应给服务器端配置高性能硬件。

本网络系统服务器端的配置如下:

处理器:

InterPentium(Celeron)42.4GHz或更高。

内存:

512MB

硬盘空间:

60G

显卡:

SVGA显示适配器

(2)客户端:

因为客户端主要用于浏览和操作数据,所以对客户端的硬件要求不高,不过现在的电脑有很高的性价比,因此需要的配置应该高于下面的配置:

处理器:

InterPentium(Celeron)41.6GHz或更高。

内存:

32MB

硬盘空间:

1GB

显卡:

SVGA显示适配器

2、软件环境

(1)服务器端:

操作系统:

WindowsNT/2000/2003/XPprofessional或Linux2.6.4.etc

网站服务器:

Apache2.2+PHP4.2.x/PHP5.0.x/PHP5.2

数据库管理系统:

MySQL5.x

(2)用户端:

操作系统:

WindowsNT/2000/2003/XPprofessional或Linux2.6.4.etc

第2章数据库设计

2.1数据库设计分析

各数据表描述

表2.1数据表描述

数据表

描述

相关区域

comments

评论信息

Admin>Comments

options

设置选项信息

Admin>Settings

posts

博客的主要数据,储存文章数据

Admin>Posts

categories

分类信息

Admin>Catetories

usermeta

users特性表

Admin>Users

users

用户信息

Admin>Users

2.2数据表的建立

1、categories

表2.2categories表

字段名

类型

默认值

扩展

描述

cate_id

bigint(20)

 

auto_increment

id

name

varchar(200)

0

 

分类名称

slug

varchar(200)

 

 

标识名

description

longtext

 

 

描述

parent

bigint(20)

0

FK->caetgories.cate_id

上级分类

count

bigint(20)

0

 

所属数目

表2.3categories索引

键名

类型

字段名

PRIMARY

PRIMARY

cate_id

slug

UNIQUE

slug

2、Comments

表2.4comments表

字段名

类型

默认值

扩展

描述

comment_ID

bigint(20)unsigned

NULL

auto_increment

id

comment_post_ID

int(11)

0

FK->posts.ID

文章id

comment_author

tinytext

 

 

品论作者名

comment_author_email

varchar(100)

 

 

作者email

comment_author_url

varchar(200)

 

 

作者地址

comment_author_IP

varchar(100)

 

 

作者ip

comment_date

datetime

0000-00-00

00:

00:

00

 

评论发表时间

comment_date_gmt

datetime

0000-00-00

00:

00:

00

 

评论发表时间GMT

comment_content

text

 

 

评论内容

comment_approved

varchar(20)

1

 

许可状态

comment_agent

varchar(255)

 

 

评论代理

comment_type

varchar(20)

 

 

评论类型

user_id

bigint(20)

0

FK->users.ID

用户id

表格2.5comments索引

键名

类型

字段名

PRIMARY

PRIMARY

comment_ID

comment_approved

INDEX

comment_approved

comment_post_ID

INDEX

comment_post_ID

comment_approved_date_gmt

INDEX

comment_approved

 

 

comment_date_gmt

comment_date_gmt

INDEX

comment_date_gmt

3、options

表2.6options表

字段名

类型

默认值

扩展

描述

option_id

bigint(20)

NULL

auto_increment

id

blog_id

int(11)

0

 

博客id

option_name

varchar(64)

 

 

选项名

option_value

longtext

 

 

选项值

autoload

varchar(20)

yes

 

自动装载

表2.7options索引

键名

类型

字段名

PRIMARY

PRIMARY

option_id

 

 

blog_id

 

 

option_name

option_name

INDEX

option_name

4、posts

表2.8posts表

字段名

类型

默认值

扩展

描述

ID

bigint(20)unsigned

 

auto_increment

id

post_author

bigint(20)

0

FK->users.ID

作者id

post_date

datetime

0000-00-00

00:

00:

00

 

发表时间

post_date_gmt

datetime

0000-00-00

00:

00:

00

 

发表时间GMT

post_content

longtext

 

 

文件内容

post_title

text

 

 

文章标题

post_category

int(4)

0

 

 

post_excerpt

text

 

 

文章摘录

post_status

varchar(20)

publish

 

文章状态

comment_status

varchar(20)

open

 

评论状态

post_password

varchar(20)

 

 

文章密码

post_name

varchar(200)

 

 

文章名

post_modified

datetime

0000-00-00

00:

00:

00

 

修改时间

post_modified_gmt

datetime

0000-00-00

00:

00:

00

 

修改时间GMT

post_type

varchar(20)

post

 

文章类型

comment_count

bigint(20)

0

 

评论总数

表2.9options索引

键名

类型

字段名

PRIMARY

PRIMARY

ID

post_name

INDEX

post_name

type_status_date

INDEX

post_type

 

 

post_status

 

 

post_date

 

 

ID

5、Usermeta

表2.10usermeta表

字段名

类型

默认值

扩展

描述

umeta_id

bigint(20)

NULL

auto_increment

用户特性id

user_id

bigint(20)

'0'

FK->users.ID

用户id

meta_key

varchar(255)

NULL

 

特性键名

meta_value

longtext

NULL

 

特性数据

表2.11usermeta索引

键名

类型

字段名

PRIMARY

PRIMARY

umeta_id

user_id

INDEX

user_id

meta_key

INDEX

meta_key

6、Users

表2.12user表

字段名

类型

默认值

扩展

描述

ID

bigint(20)unsigned

NULL

auto_increment

id

user_login

varchar(60)

 

 

登陆名

user_pass

varchar(64)

 

 

登陆密码

user_nicename

varchar(50)

 

 

友好名字

user_email

varchar(100)

 

 

用户email

user_url

varchar(100)

 

 

用户地址

user_registered

datetime

0000-00-00

00:

00:

00

 

注册时间

user_status

int(11)

0

 

用户状态

display_name

varchar(250)

 

 

显示名字

表2.13user索引

键名

类型

字段名

PRIMARY

PRIMARY

ID

user_login_key

INDEX

user_login

user_nicename

INDEX

user_nicename

2.3E-R图

1、主程序E-R图,如图2.1所示。

图2.1主程序E-R图

2、用户E-R图,如图2.2所示。

图2.2用户E-R图

3、文章归类E-R图,如图2.3所示。

图2.3文章归类E-R图

第3章功能模块设计

3.1MVC模式分析

使用像ASP,PHP,或者CFML这样的基于过程化开发的语言来开发一般的Web应用程序,它们的输入、处理和输出都不能很好的进行分离,因而很难体现出业务模型和业务重用性,以至于代码难以结构混乱和难以维护。

虽然有经验比较丰富的开发者会将数据从表示层分离开来,但这通常不是很容易做到的,它需要精心的计划和不断的尝试。

MVC从根本上强制性的将它们分开。

MVC是一种将应用程序的逻辑层和表现层进行分离的方法。

Codeigniter(后简称CI)是基于模型-视图-控制器这一设计模式的。

本系统采用CI框架下的MVC开发模式。

模型(Model)代表你的数据结构。

通常来说,你的模型类将包含取出、插入、更新你的数据库资料这些功能。

视图(View)是展示给用户的信息。

一个视图通常是一个网页,但是在CI中,一个视图也可以是一个页面片段,如页头、页尾。

控制器(Controller)是模型、视图以及其它任何处理HTTP请求所必须的资源之间的中介,并生成网页。

MVC三层模式的好处显而易见,首当其冲就是模型重性能很好地发挥,因为模型是自包含的,并且与控制器和视图相分离,所以很容易改变你的应用程序的数据层和业务规则。

由于运用MVC的应用程序的三个部件是相互对立,改变其中一个不会影响其它两个,所以依据这种设计思想你能构造良好的松偶合的构件。

MVC有它的优点同时,我对MVC的模式开发有自己的一点看法,由于它没有明确的定义,所以完全理解MVC并不是很容易。

使用MVC需要精心的计划,由于它的内部原理比较复杂,所以需要花费一些时间去思考。

同时在抽象出业务处理的模型时,虽然能够屏蔽掉其它层次不相关的处理细节,但也限制了与之相关的功能扩展。

或者可以根据MVC分离式设计,经由修改内部代码来扩展功能和业务,但好的扩展性是体现在添加而不是修改上。

需求总是会变的,若要扩展业务或功能时,开放人员就不得不重新在模型里面添加代码甚至改变内部结构以适应新的需求。

3.2插件式设计分析

插件式设计模型,如图3.1所示。

图3.1插件式设计模型

基于插件式设计比起许多设计模式更简单,更容易理解。

各种基于插件设计的架构都有自己的特色,但从总体架构上看,其模型都大同小异。

基于插件设计的应用程序由应用程序框架、插件接口、插件和公共函数库四部分组成。

应用程序框架负责应用程序的整体运作,它清楚程序整个流程,但并不知道每个过程具体要做什么。

它在适当的时候调用一些插件,来完成真正的功能。

插件接口是一个协议。

插件按照这个协议实现出来,就可以加入到应用程序中来。

当然,对于复杂的系统,插件接口可能有多个,各自具有独立的功能。

插件是完成实际功能的实体,实现了要求的插件接口。

尽管实现什么以及怎么实现,完全是插件自己的自由。

在实际情况来,一般还是有些限制,因为插件接口本身可能就是一个限制。

如,实现编译功能的插件,自然不能实现成一个聊天功能的插件。

公共函数库是一组函数或者类,应用程序框架和插件都可以调用。

它通常是一个独立的库。

应用程序框架本身是公用的,是代码复用的一种方式。

但并不是所有可复用代码都可以放在框架中,特别是插件会用到的公共代码,那会造成插件对框架的依赖。

把这些公共代码提取到一个独立的库中,是一种好的方法。

3.3开发设计模型的改进

基于我对MVC模型的一点看法,插件式设计能因应我以上的考虑,为系统设计找到一个平衡点,它能把扩展功能从框架中剥离出来,降低了框架的复杂度,让框架更容易实现。

扩展功能与框架以一种很松的方式耦合,两者在保持接口不变的情况下,可以独立变化和发布。

公开插件接口,让第三方有机会扩展应用程序的功能,共同分享成果。

为更好地体现出系统的灵活性和可扩展性,本系统采用了MVC三层模式开发和插件设计的混合开发模式,实现表现层和业务层的分离,加上事件

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

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

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