个人博客系统的管理与制作.docx |
您所在的位置:网站首页 › svga插件 › 个人博客系统的管理与制作.docx |
个人博客系统的管理与制作.docx 《个人博客系统的管理与制作.docx》由会员分享,可在线阅读,更多相关《个人博客系统的管理与制作.docx(44页珍藏版)》请在冰豆网上搜索。 个人博客系统的管理与制作 专科毕业论文(设计)
题目个人博客管理系统设计与制作 姓名 院系电气信息工程学院 专业计算机应用技术 学号 指导教师
摘要 博客近两年来在国内的发展非常快速,它可作为使用者个人或工作当中的文章、连结、照片的分享平台,逐渐成为以内容为主的新兴网路媒介,并延伸至行销、商业推广等主流应用。 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 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |