版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业设计(2010届)论文题目基于PHP的小型内容管理系统的探讨与开发THERESEARCHANDDEVELOPMENTOFCONTENTMANAGEMENTSYSTEMBASEDONPHP学生姓名:陈晨学号:二级学院名称:电子信息学院专业:信息管理与信息系统指导教师:陈能干 职称:副教授.郑重声明我谨在此慎重声明:本人所写的毕业论文《基于PHP的小型内容管理系统的探讨与开发》均系本人独立完成,没有抄袭行为,凡涉及其他作者的观点和材料,均作了注释,若有不实,后果由本人担当。承诺人(签名):年月日基于PHP的小型内容管理系统的探讨与开发摘要:随着网络应用的丰富和发展,很多网站往往不能快速跟进大量信息衍生及业务模式变革的脚步,而内容管理系统恰恰能够通过对企业各种类型的数字资产的产生、管理、增值和再利用,以改善组织的运行效率和企业的竞争实力,企事业单位也起先相识到内容管理系统的重要性。本论文通过探讨内容管理系统的特点和需求,设计和开发出一个基于PHP的内容管理系统。论文首先介绍了内容管理系统的背景、意义,然后介绍了内容管理系统的相关技术基础,如PHP、MVC技术等,接着介绍了系统体系结构设计的思想,选择与内容管理系统有关的开发环境,并结合B/S结构、框架概念,开发探讨了内容管理系统。关键词:内容管理系统;PHP;ThinkPHP;MVCTHERESEARCHANDDEVELOPMENTOFCONTENTMANAGEMENTSYSTEMBASEDONPHPABSTRACT:Withtheenrichmentanddevelopmentofnetworkapplications,manywebsitesareoftennotpromptlyfollowuponalotofinformationderivedfromthepaceofchangeandbusinessmodel,andcontentmanagementsystemforenterprisepreciselythroughtheproductionofvarioustypesofdigitalassets,management,value-addedandre-usetoimprovetheorganization'soperationalefficiencyandcompetitivenessofenterprises,enterprisesarebeginningtorecognizetheimportanceofcontentmanagementsystems.ThisthesispassesandstudiescharacteristicanddemandofcontentmanagementsystemdesignanddevelopasystemofcontentmanagementbasedonPHP(Personalhomepage/HypertextPreprocessor).Thethesishasintroducedthebackground,meaningofcontentmanagementsystematfirst,thenintroducedtherelevanttechnologicalfoundationsofcontentmanagementsystem,suchasPHP,MVCtechnology,etc.,thenhasintroducedthethoughtofthestructuraldesignofsystematicsystem,choosethedevelopmentenvironmentrelatedtocontentmanagementsystem,combineadvancedconceptssuchasB/Sstructure,frame,havedevelopedandstudiedcontentmanagementsystem.Keywords:contentmanagementsystem;PHP;ThinkPHP;MVC目录1绪论 11.1系统开发背景与意义 11.2课题主要内容 11.3论文结构 22内容管理系统技术基础 22.1内容管理系统概述 22.1.1什么是内容管理系统 22.1.2内容管理系统的基本特征 22.2相关技术 32.2.1PHP 32.2.2Apache 42.2.3MySQL 42.2.4ZendStudio 52.2.5Jquery 52.2.6Ajax 52.3MVC开发模式 62.4系统设计流程 72.5ThinkPHP框架 83内容管理系统总体设计 93.1系统的需求分析 93.1.1系统基本功能 93.1.2系统的性能需求 93.1.3数据字典 93.1.4系统的开发平台 103.2系统总体设计 103.2.1系统各个模块简述 103.2.2系统功能图 113.2.3系统用例图的设计 113.2.4系统数据流程 113.3数据库的设计 124系统的实现 134.1系统文件结构 134.2系统主要模块实现 144.2.1留言子模块的实现 144.2.2搜寻子模块的实现 154.2.3订单子模块的实现 164.2.4主题子模块的实现 174.2.5产品列表子模块的实现 185系统测试和分析 195.1测试目的 195.2测试过程 196结束语 20致谢 21参考文献 221绪论1.1系统开发背景与意义内容管理从2000年起先成为一个重要的应用领域,这时.COM和B2B,B2C等经验了资本和市场的考验及洗礼,人们重新回到信息技术应用的基本面-如何提高竞争实力,而内容管理恰恰能够通过对企业各种类型的数字资产的产生、管理、增值和再利用,以改善组织的运行效率和企业的竞争实力,企事业单位也起先相识到内容管理的重要性。随着网络应用的丰富和发展,很多网站往往不能快速跟进大量信息衍生及业务模式变革的脚步,常常须要花费很多时间、人力和物力来处理信息更新和维护工作;遇到网站扩充的时候,整合内外网及分支网站的工作就变得更加困难,甚至还需重新建设网站;如此下去,用户始终在一个高成本、低效率的循环中升级、整合。最终导致页面制作无序,网站风格不统一,大量信息积累,发布显得异样沉重;内容繁杂,手工管理效率低下,手工产品列表视音频信息常常无法实现;应用难度较高,很多工作须要技术人员协作才能完成,角色分工不明确;改版工作量大,系统扩展实力差,集成其它应用时更是降低了敏捷性;国外从事内容管理软件研发的主要厂商包括Vignette,Interwoven,oadVision,Openmarket,ATG,Allaire,Documentum,Hummingbird等,这些公司CMS产品和解决方案专业性很强,大多基于J2EE等平台,功能丰富,主要面对企业级用户,是CMS市场的主要厂商。还有一些更窄的专业厂商供应内容管理某个阶段须要的功能,如Verity供应学问检索,Micromedia供应内容创作平台,Akamai和Inkitomi供应内容分发管理技术等。与此相反,Microsoft,IBM,Oracle等公司供应通用平台性CMS解决方案。这是一个新兴的领域,并且已经渐渐起先形成了一股新的热潮。内容管理系统时代的到来必将会带动其他各个领域的发展,如程序商,空间、域名服务商,内容管理营销网站,广告等,这这些都是干脆的受益者。一旦内容管理系统成为新的主流,那么其所带来的影响将远远不止这些。因此,内容管理系统有广阔的开发和应用前景。[1]1.2课题主要内容课题的主要探讨工作分为两个部分:一是针对内容管理系统的特点和需求,探讨内容管理系统。二是探讨相关内容管理系统的开发过程,分析内容管理系统开发的特别要求。主要从以下几点动身:(1)确定开发思路:通过对内容管理系统现状、理论和技术探讨,结合具体需求和特点,对内容管理系统的开发思路进行了分析与确定。(2)分析具体的系统功能:通过翻阅大量文献资料与实践调查,确定内容管理系统应当实现的系统基本功能。(3)从整体把握课题:包括整个系统的结构层次、网络的架构,功能的模块的划分,技术关键点和难点落实等。(4)系统各部分逐一落实:包括如何编写各个模块实现其相应的功能,以及各模块之间的相互连接与统一。
(5)系统的集成和调试:在全部功能和子系统都被实现后,将各个功能模块、子系统集成为一个完整的系统,然后经过反复的测试、调试和修改,最终使系统达到预期的目标。1.3论文结构全文共分为六章。第一章主要介绍了内容管理系统的课题背景与意义,阐述了内容管理系统的发呈现状以及将来发展的方向,最终简要介绍了系统的主要工作内容。其次章首先介绍了内容管理系统的技术基础及平台,其中包括网络编程语言PHP、本地服务器Apache以及数据库MySQL和MVC的开发模式等。第三章介绍了有关内容管理系统设计的总体构想与思路,并介绍了各模块和数据库的设计。第四章,以内容管理系统中各个子模块为例介绍了功能的设计实现以及相关代码。第五章是系统的测试和分析,主要针对课题的实际可操作性进行测试并改进。第六章是结束语,对本次课题进行了总结以及对不足处的提出和以后的展望。2内容管理系统技术基础2.1内容管理系统概述什么是内容管理系统CMS是ContentManagementSystem的缩写,意为"内容管理系统"。CMS的功能并不只限于文本处理,它也可以处理图片、Flash动画、声像流、图像甚至电子邮件档案。内容管理系统是一种位于WEB前端(Web服务器)和后端办公系统或流程(内容创作、编辑)之间的软件系统。内容管理解决方案重点解决各种非结构化或半结构化的数字资源的采集、管理、利用、传递和增值,并能有机集成到结构化数据的商业智能环境中,如OA,CRM等。内容的创作人员、编辑人员、发布人员运用内容管理系统来提交、修改、审批、发布内容。这里指的"内容"可能包括文件、表格、图片、数据库中的数据甚至视频等一切你想要发布到Internet、Intranet以及Extranet网站的信息。[2]内容管理系统的基本特征不管是个人用户、软件公司的专业服务组还是一个系统综合体,在很多状况下都要依靠软件包来安装、配置系统,并对模板进行设计和加密。应用服务供应商一般会为了这样的设置收取用户的一次性付款,这笔款项包括开户费、对用户客户管理供应帮助以及在系统上建立用户终端界面的费用。一些应用服务供应商也为用户供应了建立终模板的帮助服务,用户还能够通过他们与你的合作伙伴联系。当然,你不必为安装系统和客户软件而发愁,因为每一件事都可以通过阅读器来完成。把内容管理系统从企业文件管理系统中分别出来的构想还包括工作流程和程序限制工具。在很多公司里,运用内容管理系统的最关键缘由就是由于工作流程的原因,作为一个管理者、法律部门、一般编辑或是网页发行者都必需在发送这些文书或是网页之前签署您的大名。很多内容管理系统就有过人之处,它们供应了电子邮件识别这样的特征,这样一个相同的内容就为批准、分流和平行发送这三种工作流程打算好了三种不同的路径。然而,一个常见的内容管理系统错误是建立了困难的工作流程模式,这种模式太程序化了,当用户的须要变更是很不简洁被修改--也就是说一个低终端的系统可能会是一个比较好的选择。[3]2.2相关技术2.2.1PHPPHP最初出现于1994年,是PHP/FI(个人主页/表单说明器,PersonalHomePage/FormsInterpreter)的一系列脚本。随着PHP的逐步发展,PHP指的不再是“个人主页(PersonalHomePage)”,而是“PHP超文本预处理器(PHPHypertextPreprocessor)”。PHP是完全免费的,不用花钱,你可以从PHP官方站点(://)自由下载。你可以不受限制的获得源码,甚至可以从中加进你自己须要的特色。PHP在大多数Unix平台,GUN/Linux和微软Windows平台上均可以运行。运用PHP进行Web应用程序开发,具备如下的优点:(1)可运用服务器端的脚原来产生客户端的脚本。运用VBScript、JavaScript等简洁易懂的脚本语言,结合HTML代码,即可快速地完成网站的应用程序;(2)无须编译,简洁编写,可在服务器端干脆执行;(3)运用一般的文本编辑器,如Windows的记事本,即可进行编辑设计;(4)与阅读器无关(BrowserIndependence),客户端只要运用可执行HTML码的阅读器,PHP所运用的脚本语言均在WEB服务器端执行,客户端的阅读器不须要能够执行这些脚本语言的功能;(5)PHP能与任何用C语言、Java语言所开发的扩展兼容。PHP主要功能与应用有如下三大领域:(1)服务器端脚本(Server-sideScript):即最常用的Web程序开发;(2)吩咐行/Shell脚本(CLI/CommandlineScript):用以做系统自动化与监测脚本;(3)客户端用户界面(Client-sideGUIApplication):运用PHPGTK可以编写类似于VB/Delphi的桌面应用程序。本系统选择PHP开发的理由是:(1)简洁易学;(2)有众多的扩展类库;(3)有活跃的用户群、广阔的开发者社区;(4)平安性高;(5)运行稳定。2.2.2ApacheApache,中文名称为阿帕奇,是一种开放源码的服务器,可以在大多数计算机操作系统中运行,由于其多平台和平安性而被广泛运用,是最流行的Web服务器端软件之一。Apache是1994年源于IBM公司的NCSA小型Web服务器项目。它和PHP的发展很相像,最初是靠热心的程序员或网管以补丁(Pacth)的形式来维护的,从1.3版本起先起以Apache的正式名称供应应全部用户免费下载运用,且开放源代码。[4]本系统采纳Apache2.2,其特性如下:(1)模块化:支持多种语言或脚本引擎,如PHP、Perl/ModPerl、JSP/Servelet等。(2)平安性高:由于开放源代码,通常会在平安性问题被刚好发觉并解决后发布新的版本。(3)扩展性好:支持多种操作系统,如MSWin32/FreeBSD/Linux/OS2等平台。(4)可移植性:在这些异构操作系统,配置与安装基本相像。(5)性能优越:可以自定义运行参数、编译环境,以适应不同的Web环境的承载。(6)多线程:Apache2支持UNIX运行POSIX线程,在Windows下为多线程模式。(7)自定义错误文档:管理员可以便利地更改错误页面。(8)多语种支持:支持UTF-8、GB2312、ShiftJIS、BIG5等多种字符集编码。Apache是服务器软件始终不断进化的大块部件,它免费但又是无价之宝。Apache是在资源开放运动中出现的肯定珍品,因为不属于个人专利而是对公共免费。一旦拥有这些源码,程序员能够自由完成所想——能在其它程序员接替工作时被给予同样的权限来变更和修改自己的源代码。2.2.3MySQLMySQL是一个真正的多用户、多线程SQL数据库服务器。SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言。MySQL是以一个客户机/服务器(B/S)结构的实现,它由一个服务器守护程序mysqld和很多不同的客户程序和库组成。(1)MySQL是一个数据库管理系统。一个数据库是一个结构化的数据集合。它可以是从一个简洁的销售表到一个美术馆或者一个社团网络的浩大的信息集合。假如要添加、访问和处理存储在一个计算机数据库中的数据,你就须要一个像MySQL这样的数据库管理系统。从计算机可以很好的处理大量的数据以来,数据库管理系统就在计算机处理中和独立应用程序或其他部分应用程序一样扮演着一个重要的角色。(2)MySQL是开源的。开源意味着任何人都可以运用和修改该软件,任何人都可以从Internet上下载和运用MySQL而不须要支付任何费用。假如你情愿,你可以探讨其源代码,并依据你的须要修改。MySQL运用GPL(GNUGeneralPublicLicense,通用公共许可),在中定义了你在不同的场合对软件可以或不行以做什么。假如你觉得GPL不好或者想把MySQL的源代码集成到一个商业应用中去,你可以向MySQLAB购买一个商业许可版本。[5](3)MySQL服务器工作在客户/服务器(B/S)中。MySQL数据库服务器是一个客户/服务器(B/S)系统,它由多线程SQL服务器组成,支持不同的后端、多个不同的客户程序和库、管理工具和广泛的应用程序接口(API)。ZendStudio ZendStudio是一个屡获大奖的专业PHP集成开发环境,具备功能强大的专业编辑工具和调试工具,支持PHP语法加亮显示,支持语法自动填充功能,支持书签功能,支持语法自动缩排和代码复制功能,内置一个强大的PHP代码调试工具,支持本地和远程两种调试模式,支持多种高级调试功能。Jquery jQuery由美国人JohnResig创建,至今已吸引了来自世界各地的众多JavaScript高手加入其team,包括来自德国的JörnZaefferer,罗马尼亚的StefanPetre等等。jQuery是继prototype之后又一个优秀的JavaScript框架。其宗旨是——WRITELESS,DOMORE,写更少的代码,做更多的事情。[6]它是轻量级的js库(压缩后只有21k),这是其它的js库所不及的,它兼容CSS3,还兼容各种阅读器(IE6.0+,FF1.5+,Safari2.0+,Opera9.0+)。jQuery是一个快速的,简洁的JavaScript库,运用户能更便利地处理HTMLdocuments、events、实现动画效果,并且便利地为网站供应AJAX交互。jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很具体,同时还有很多成熟的插件可供选择。jQuery能够运用户的html页保持代码和html内容分别,也就是说,不用再在html里面插入一堆js来调用吩咐了,只需定义id即可。2.2.6Ajax(1)什么是AjaxAjax(阿贾克思)是AsynchronousJavaScriptandXML的缩写,即异步JavaScript和XML。Ajax是一种客户端技术,Ajax技术借助异步JavaScript实现阅读器和服务器之间的异步交互,即相当于在Web应用中实现了原来C/S(Client/Server)结构下的交互结果,且这种效果的实现并没有带来繁琐的客户部署工作。比如:无需重新加载整个页面就可以想服务器发送恳求,并接受响应。同时对XML文档解析和处理。 Ajax相当于在阅读器客户端与服务器之间架设了一个桥梁、一个媒介,在它的帮助下,可以消退网络交互过程中的“处理——等待——处理——等待”的缺陷。在处理过程中Web服务器响应是标准的且易于解析的XML格式的数据传递给Ajax,然后再转换成HTML页面的格式,协助CSS进行显示。Ajax是运用XMLRequest对象发送恳求并获得服务器端的响应,同时Ajax可以在不重新载入整个页面的状况下用JavaScript操作DOM以实现最终更新页面。因此在读取数据的过程中,用户面对的不是白屏,而是原来的内容。这种更新是瞬间的,运用户感觉是连贯的。[10] 借助Ajax,可以把以前一些原本由服务器负担的工作转移到客户端来完成,利用客户端闲置的实力来进行处理,这样也可以有效地减轻服务器和带宽的负担,使服务器更稳定,更良好的运行,同季节约了空间和宽带。(2)Ajax相关技术介绍 Ajax是多种技术的综合应用,包括JavaScript脚本、CSS、DOM和重要对象XMLRequest。①JavaScript是一种可以与HTML标记混合运用的脚本语言,编写的程序可以干脆在阅读器中说明执行。因此运用脚本语言编写程序可以在阅读器支持下跨平台运行。JavaScript脚本中可以调用阅读器及Ajax中供应的相关对象。利用这些对象的属性方法可以实现页面效果的动态限制。②CSS是层叠样式表。CSS规则由模式匹配段和操作部分组成。模式匹配段用于表示元素与行为之间的关联性;操作部分用于确定对指定部分的操作。CSS层叠样式可以弥补HTML超文本标记语言在格式修饰中的不足,同时也为能够实现页面格式的批量动态更新。③DOM的全称是文档对象模型(DocumentObjectModel),它在本质上是一种文档平台。在运用Ajax技术中,借助DOM,可以结合脚本语言实现动态的数据存储以及动态上传文件。④XMLRequest是Ajax技术中最重要的一个对象。页面可以在不刷新的状况下通过它发送恳求来获得服务器响应,也可以运用该对象在不刷新当前页面的状况下更新页面中的数据。2.3MVC开发模式MVC由TrygveReenskaug提出,首先被应用在SmallTalk-80环境中,是很多交互和画面系统的构成基础。MVC结构是为那些须要为同样的数据供应多个视图的应用程序而设计的,它很好地实现了数据层与表示层的分别。MVC作为一种开发模型,通常用于分布式应用系统的设计和分析,以及用于确定系统各部分间的组织关系。对于画面设计可变性的需求,MVC(Model-View-Controller)把交互系统的组成分解成模型、视图、限制器3种部件。(1)模型部件(Model)保存由视图显示、由限制器限制的数据;它封装了问题的核心数据、逻辑和功能的计算关系,它独立于具体的画面表达和I/O操作。(2)视图部件(View)把表示模型数据及逻辑关系和状态的信息以特定形式展示给用户。它从模型获得显示信息,对于相同的信息可以有多个不同的显示形式或视图。(3)限制器部件(Controller)是处理用户与软件的交互操作的,其职责是限制供应模型中任何变更的传播,确保用户画面与模型间的对应联系;它接受用户的输入,将输入反馈给模型,进而实现对模型的计算限制,是使模型和视图协调工作的部件。PHP的MVC模型如下图所示:$_SESSION$_COOKIEModel$_FILEBusiness($_POST、$_GET$_、REQUEST)DB句柄LogicPHPCLIFile句柄SOAPControllerXML-RPCApplicationFlowHTML/XHTMLViewXMLPresentationXSLTLayerWML文本文件图片文件其他类型文件图2-3MVC模式模型、视图与限制器的分别,使得一个模型可以具有多个显示视图。假如用户通过某个视图的限制器变更了模型的数据,全部其他依靠于这些数据的视图都应反映了这些变更。因此,无论何时发生了何种数据变更,限制器都会将变更通知全部的视图,导致显示的更新。[7]2.4系统设计流程需求分析需求分析概要设计具体设计系统测试编写代码图2-4系统设计流程图(1)需求分析本阶段主要对内容管理系统的需求状况进行调查收集,将用户对该系统的任何需求通过各种方式进行收集,比如采纳问卷的形式,实地询问用户等形式进行。最终目的就是了解用户对该系统有何要求、有何期望,简洁的说就是要知道用户希望内容管理系统要完成什么功能,如何才能满意用户的须要。(2)概要设计概要设计部分主要对内容管理系统有一个也许的设计介绍,对内容管理系统的概要设计部分主要包括如下内容:开发与设计的整体思想、系统的组成结构、各个模块的设计内容、系统平安设计等。其中开发与设计的整体思想主要是对内容管理系统的开发与设计的整体思路进行介绍。系统的组成结构主要包括硬件设施结构和软件系统结构,硬件设施结构部分对内容管理系统运用的硬件设施作介绍,而软件系统结构则对内容管理系统的软件整体设计结构给出介绍。各个模块的设计主要包括内容管理系统的登陆、内容阅读、系统管理模块逐一介绍。系统平安设计部分主要对内容管理系统中如何保证系统平安的措施给出说明。(3)具体设计具体设计部分则是在概要设计的基础上对内容管理系统作出更为具体的介绍。主要对各设计包中的各个类作出说明,包括对每个类如何在以后的程序设计中的定义作出介绍,并作出相应的说明,并对各参数作出介绍。(4)编写代码这一部分主要依据前面的具体设计内容,用具体语言实现内容管理系统。本系统主要采纳PHP语言实现,这一部分主要是代码实现,将前一阶段的设计思想实现,因为前面已经对该系统的整体设计思路和整体框架作出了说明,并且在具体设计部分对每个设计包中的类如何实现也已给出,所以在这一部分工作量也不是太大。(5)系统测试系统测试部分主要对前面已经实现的系统作出测试,看该系统是否符合系统设计要求。并对一些特别的数据进行测试,比如一些临界值,看是否符合要求,在测试的基础上,对发觉的错误进行改正,使系统逐步得到完善。测试不是一朝一夕就能完成的,必需在今后的运用过程中渐渐完善,并得到用户的反馈后对系统作出修改。内容管理系统主要采纳了软件工程的设计思路,各部分都遵从软件工程的设计要求。2.5ThinkPHP框架ThinkPHP是一个开源的PHP框架,是为了简化企业级应用开发和灵敏WEB应用开发而诞生的。最早诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,并且遵循Apache2开源协议发布。早期的思想架构来源于Struts,后来经过不断改进和完善,同时也借鉴了国外很多优秀的框架和模式,运用面对对象的开发结构和MVC模式,融合了Struts的Action和Dao思想和JSP的TagLib(订单库)、RoR的ORM映射和ActiveRecord模式,封装了CURD和一些常用操作,单一入口模式等,在模版引擎、缓存机制、认证机制和扩展性方面均有独特的表现,也已经越来越多地受到国内PHP开发人员的认可。运用ThinkPHP,你可以更便利和快捷的开发和部署应用,当然不仅仅是企业级应用,任何PHP应用开发都可以从ThinkPHP的简洁、兼容和快速的特性中受益。简洁、快速和好用是ThinkPHP发展秉承的宗旨,为此ThinkPHP会不断汲取和融入更好的技术以保证其簇新和活力,供应WEB应用开发的最佳实践![8]作为一个整体开发解决方案,ThinkPHP能够解决应用开发中的大多数须要,因为其自身包含了底层架构、兼容处理、基类库、数据库访问层、模板引擎、缓存机制、插件机制、角色认证、表单处理等常用的组件,并且对于跨版本、跨平台和跨数据库移植都比较便利。并且每个组件都是细心设计和完善的,应用开发过程仅仅须要关注您的业务逻辑。3内容管理系统总体设计3.1系统的需求分析系统基本功能信息时代的今日,在网络中构建一个赋有特性化的内容管理系统,供应了一种可信任的和实时连通的网络环境,通过网络开放性和交互性的特点,让用户在任何时间、任何地点,通过网络便利地“生活”,不仅是信息传递与获得,还可以进行群体沟通和资源共享,展示自我,为个人发展带来新机遇。本内容管理系统具有以下功能:(1)完整的内容管理功能,包括内容的添加、修改、删除、审核等。(2)支持附件上传功能,可以上传图片。(3)要求具有强大的搜寻查询功能。系统的性能需求一个系统设计的根本目的就是真正满意用户的实际需求,并采纳先进、平安、成熟、牢靠的技术来实现。鉴于当今技术发展的趋势,本系统采纳B/S(阅读器/服务器)模式,运用PHP技术开发。本着既要保证系统的平安性、稳定性、高效性,又要为用户供应好用、便利、高效的操作环境的设计思想,来进行分析设计的。系统的平安性是指系统中全部数据的平安性,它包括数据的保密性、完整性、可用性、可控性。其中,数据的保密性就是在系统的实际运行中,要确保数据不能被未经授权者访问到,对此,本系统采纳管理员帐户登录机制,通过较为平安的用户信息表来保存、维护用户的登录信息。数据完整性就是防止信息被未经授权者篡改,保证数据的正确性和完整性。数据可用性就是保证相关数据及信息系统的确为授权运用者所运用。本系统是面对单用户开发的系统,完成管理员在后台上进行各项操作,实现商家和客户之间的双向沟通。数据字典数据结构设计的第一阶段也是主要的一个阶段是数据的需求分析。在这个阶段,依据所了解驾驭的用户需求,进行了数据的采集和对数据的处理操作,以确保数据采集的具体精确,理清数据库中各个数据项的关系,这将为系统的设计打基础。在数据分析阶段要做到两点:调查清晰应用系统用户所须要操作的数据,确定存储什么数据。调查清晰应用系统用户要求对数据进行什么样的处理,理清各个数据项之间的关系。留意做到这两点是特别重要的要向系统用户具体调查保证信息的采集的完整性、一样性和精确性。在数据分析后要做到设计出一个数据字典文档包括三方面:(1)数据项:包括字段名、字段的含义、类型定义以及和其他数据项的逻辑关系。(2)数据结构:若干个数据项的有意义的集合,包括字段名称、含义以及组成的数据结构的数据项。(3)数据流:指数据库中数据的处理过程,包括数据信息的输入、处理和输出。据此,可归结出内容管理系统所需完成的主体任务:(1)基本信息的添加、修改和删除:包括产品信息、新闻、留言等信息。(2)基本信息的查询:产品信息的查询。针对内容管理系统的总体需求,通过对内容管理系统管理过程的内容和数据流程分析与系统总体功能模块梳理,设计产生如下所示的数据项和数据结构:(1)用户信息:用户名、密码等。(2)分类信息:类型编号、类型名称等。(3)内容信息:内容序号、内容标题、内容内容、所属类型等。系统的开发平台(1)系统服务器为Apache2.2.4,数据库为MySQL,整个系统程序、界面采纳Zendstudio6和Dreamweaver(2)系统采纳ThinkPHP开源MVC框架。3.2系统总体设计系统各个模块简述本系统主要由四大模块组成:新闻模块、留言、订单模块、产品模块和用户模块。(1)新闻模块:用于管理发表的新闻的管理单元。包括新闻列表(新闻标题、发布时间)和新闻具体内容(新闻标题、发布时间、正文内容)。(2)留言、订单模块:一般用户可以在线留言、下订单,留言经审核后管理员才显示出来(3)产品模块:管理员对产品及其所属分类进行添加、编辑、修改和删除。(4)用户模块:用户组分为管理员和一般用户,管理员拥有全部操作权限,一般用户只能在前台阅读。3.2.2系统功能图图3-2-2系统功能图系统用例图的设计通过从用户的角度展示系统的功能,设计如下商品用例图:图3-2-3商品用例图系统数据流程订单留言新闻、产品用户的需求具体体现在各种信息的供应保存、更新和查询上,这就要求数据库结构应当满意各种信息的输入和输出。在细致分析,调查有关用户信息管理需求的基础上,得到本系统的数据流程图。订单留言新闻、产品新闻、产品编辑订单编辑留言编辑新闻、产品阅读新闻、产品编辑订单编辑留言编辑新闻、产品阅读管理员订单填写一般用户管理员订单填写一般用户留言填写留言填写图3-2-4数据流程图3.3数据库的设计本系统中的数据管理形式采纳数据库,依据系统须要与数据规范化分为留言表、产品信息表、用户表、新闻表、产品类别表、订单表这六个基本数据表。表3-3-1:留言表字段类型字段说明oidint(11)留言编号namevarchar(20)留言者昵称qqint(10)用户qq号码emailvarchar(20)用户email地址Titlevarchar(20)留言标题ContentVarchar(100)留言内容Create_timeInt(11)留言时间StatusTinyint((1)留言审核状态表3-3-2:产品信息表字段类型字段说明idint(10)产品编号titleText产品名称contenttext产品介绍cidInt(10)产品类别编号picVarchar(50)产品图片表3-3-3:用户表think_user字段类型字段说明idmediumint(8)用户编号acountvarchar(64)用户登录名passwordvarchar(32)用户密码表3-3-4:新闻表字段类型字段说明idint(11)新闻编号titletest新闻标题contenttext新闻内容Create_timeint(10)新闻发布时间表3-3-5:产品类别表字段类型字段说明cidint(10)类别编号Classnamevarchar(20)类别名称表3-3-6:订单表字段类型字段说明0tidint(10)订单编号CompanyVarchar(40)客户公司Namevarchar(20)客户姓名Addressvarchar(40)客户现居住地址TelText客户联系电话FaxInt(10)客户传真号码urlvarchar(20)客户网站网址EmailVarchar(10)客户邮箱地址ContentText订单内容Create_timeInt(10)订单下达时间4系统的实现4.1系统文件结构一、系统书目(ThinkPHP框架书目)ThinkPHP.php框架的公共入口文件Common包含框架的一些公共文件、系统定义、系统函数和惯例配置等Lang系统语言文件Lib系统基类库书目Tpl系统模板书目Mode框架模式扩展书目Vendor第三方类库书目二、应用书目(项目书目)index.php项目入口文件(可以运用其他名称或者放置于其他位置)Common项目公共文件书目,一般放置项目的公共函数Conf项目配置书目,全部的配置文件都放在这里。Lang项目语言包书目(可选)Lib项目类库书目,通常包括Action和Model子书目Tpl项目模板书目,支持模板主题Runtime项目运行时书目,包括Cache(模板缓存)、Temp(数据缓存)、Data(数据书目)和Logs(日志文件)子书目上面的只是默认方式,项目下面的书目名称和结构是可以重新定义的。其实项目书目并不须要开发人员手动创建,只须要定义好项目的入口文件之后,系统会在第一次执行的时候自动生成项目必需的全部书目结构(前提是项目书目具有可写权限,这点在Linux环境下面须要留意)。可以看出新版的书目结构更加便于部署和配置,因为只有Runtime书目才是须要具备可写权限的,在Linux环境下面可以更加快速的部署和配置书目权限。三、部署书目当我们实际部署网站的时候,书目结构往往由于项目的困难而变得困难。我们举荐的部署书目结构如下:ThinkPHP系统书目(下面的书目结构同上面的系统书目)Home项目书目(下面的书目结构同上面的应用书目)Admin后台管理项目书目……更多的项目书目index.php网站的入口文件admin.php网站的后台入口文件假如采纳分组模块的话可以简化为一个项目书目ThinkPHP系统书目(下面的书目结构同上面的系统书目)App项目书目Public网站公共书目index.php网站的入口文件项目的模板文件还是放到项目的Tpl书目下面,只是将外部调用的资源文件,包括图片JS和CSS统一放到网站的公共书目Public下面,分Images、Js和Css子书目存放,假如有可能的话,甚至也可以把这些资源文件单独放一个外部的服务器远程调用,并进行优化。这样部署的好处是系统书目和项目书目可以放到非WEB访问书目下面,网站书目下面可以只须要放置Public公共书目和index.php入口文件(假如是多个项目的话,每个项目的入口文件都须要放到WEB书目下面),从而提高网站的平安性。4.2系统主要模块实现4.2.1留言子模块的实现留言子模块主要是用于用户发表留言来询问各方面的问题,将已经发表的内容按发表时间逆次依次形成列表,运用户对全部留言内容一目了然。此模块页面如下图所示:图4-2-1-1留言子模块界面工作流程:点击阅读留言 点击阅读留言传入Action名Scan传入Action名ScanURL提交到Contact模块的ScanURL提交到Contact模块的Scan从数据库提取留言从数据库提取留言Scan通过display()方法显示Scan模板Scan通过display()方法显示Scan模板图4-2-1-2留言模块工作流程图4.2.2搜寻子模块的实现搜寻子模块主要的作用是实现用户对产品的搜寻。此模块采纳了高级搜寻的方式,可以通过输入关键字实现精确查找。借助该单元,能够对全部产品内容进行索引定位和搜寻,查找满意要求的内容。此模块页面如下所示:图4-2-2-1搜寻子模块界面3秒后返回工作流程:3秒后返回点击搜寻按钮点击搜寻按钮显示公共模板success检查输入是否为空显示公共模板success检查输入是否为空是是否否进入error()方法进入error()方法传入Action名Search从产品表匹配用户输入的关键字Search通过display()方法显示Search模板URL提交到Index模块的Search传入Action名Search从产品表匹配用户输入的关键字Search通过display()方法显示Search模板URL提交到Index模块的Search图4-2-2-2搜寻模块工作流程图4.2.3订单子模块的实现订单。它的作用是当客户不便利干脆电话联系商家时,可以将信息提交给后台管理员,其界面如下:图4-2-3-1订单子模块界面工作流程:否检查输入是否为空从产品表匹配用户输入的关键字Order通过display()方法显示Order模板传入Action名Order点击提交按钮3秒后返回显示公共模板success进入error()方法是否检查输入是否为空从产品表匹配用户输入的关键字Order通过display()方法显示Order模板传入Action名Order点击提交按钮3秒后返回显示公共模板success进入error()方法是URL提交到Contact模块的OrderURL提交到Contact模块的Order 图4-2-3-2订单子模块工作流程图4.2.4主题子模块的实现访问者通过此模块可以对系统界面进行选择。点击右上角切换主题的产品列表,出现不同界面,图4-2-4-1主题子模块界面URL提交到Index模块的index传入主题变量cc点击黄色主题工作流程:URL提交到Index模块的index传入主题变量cc点击黄色主题全部display显示session记录的主题变量值全部display显示session记录的主题变量值图4-2-4-2主题列表模块工作流程图4.2.5产品列表子模块的实现此模块可以让用户比较直观的看到某个产品类别下的全部产品。图4-2-5-1产品列表子模块界面 此模块比较一般。但其中用到了一些开源的JS框架,如缩略图,可以让网页打开速度加快;另外就是添加到订单,是种简化的“添加购物车”。工作流程:点击阅读类别点击阅读类别URL提交到Index模块的CateURL提交到Index模块的Cate传入Action名Cate及类别编号id传入Action名Cate及类别编号id依据类别编号从产品表提取对应产品依据类别编号从产品表提取对应产品Cate通过display()方法显示Cate模板 Cate通过display()方法显示Cate模板图4-2-5-2产品列表模块工作流程图5系统测试和分析5.1测试目的测试是软件设计中一个独立的、关键的阶段,也是保证软件质量的重要手段。为了发觉系统的错误,使系统更加完善,就必需进行测试。测试阶段的目标是为了验证各阶段所完成的工作是否满意需求分析和具体设计要求,识别出期望的结果和真正结果之间的差别,以便修正系统设计和代码实现中的潜在的错误,保证系统运行的正确性和功能完备性,提高系统运行的性能。5.2测试过程(1)代码审查人工测试源程序可以由编写程序本人非正式的进行,也可以由审查小组形式进行。后者称为代码审查,它是一种特别有效的程序的验证技术,对于典型的程序来说,可以查出30%-70%逻辑错误和编码错误。(2)测试数据集测试数据的任务是依据肯定的策略对模块进行组装,并在组装过程中进行模块接口与子系统功能测试。这时要求考虑的问题是:①模块接口数据是否能够正确传递;②若干模块组合形成是否达到预期的要求;③模块反复调用形成的误差积积累是否在允许的范围以内;④全程数据对象的说明、设置、引用是否正确;⑤一个模块的功能是否会对其他模块的功能实现产生不利的副作用。采纳什么策略进行模块组装,干脆影响到集成测试的效率和用户对系统胜利的信念,也与测试方案的设计,所运用的测试依据亲密相关。(3)确认验收测试当系统全部模块组装完毕,代码审查和数据集测试完毕,接口错误已经基本解除,即可进行系统确认测试。系统购认测试的目的是向用户表明软件系统的有效性。依据软件需求规范的描述,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 13030.1-2026船舶电力推进系统技术条件第1部分:低压交流
- 2025年中江县卫生健康系统事业单位医疗卫生辅助岗笔试真题
- 2025年济宁市属事业单位招聘笔试真题
- 钦州市钦北区竞争选调城区学校教师考试真题2025
- 供热保障检修应急预案(3篇)
- 办公房租赁合同模板办公空间租赁协议二篇
- 2026年云南(高考)历史真题试卷及参考答案
- 2026年山东小升初(语文)考试真题带答案
- 2026年四川(中考)物理考试试卷及答案
- 2026年青海高职单招(英语)真题试卷附答案
- NB-T+10488-2021水电工程砂石加工系统设计规范
- 江西省南昌市事业单位招聘考试(职业能力倾向测验)题库附解析答案
- 《中电联团体标准-220kV变电站并联直流电源系统技术规范》
- 《水电工程水土保持生态修复技术规范》
- 2023年妇幼健康职业技能竞赛-危重新生儿救治试题及答案
- git使用培训课件
- 树立正确婚恋观 走好幸福军旅路
- 经济法概论(财经类) 自考复习资料 自考
- 直肠及肛管超声诊断
- RB/T 124-2018能源管理体系建筑业施工企业认证要求
- GB/T 4208-2017外壳防护等级(IP代码)
评论
0/150
提交评论