1、某某学院毕业论文题 目: 基于 ThinkPHP 框架的中小型企业 网站开发模板的设计与实现 姓 名: 学 号: 院 系: 计算机学院 专 业: 软件工程 指导老师: 2015 年 3 月 28 日基于 ThinkPHP 框架的中小型企业网站开发模板的设计与实现I摘要根据大多数中小型企业的网站建设需求分析可知,企业网站前后台主要功能都是大同小异的。这说明大多数中小型企业的网站建设核心基本上是一致的。在当今瞬机万变的市场环境中,快速高效开发是解决问题的关键。对于网站设计者来说,面对大同小异的网站建设需求,这无非就是设计一个适合大多数中小型企业网站建设模板以及企业信息管理的数据库。在快速高效开发方
2、面, MVC 模式开发可提高开发效率与质量,而 ThinkPHP 框架秉承了 LAMP架构的优势,严格遵循 MVC 设计模式,使用 RBAC 权限机制,具有轻量级、扩展性强、等优势,它正符合以上的开发特点。通过对中小型企业的网站建设需要和面向 WEB 开发语言的研究,我自主研发了一个面向中小型企业的网站通用模板。该模板采用了 Thinkphp+MYSQL 作为技术基础进行开发。采用MVC 的开发模式,模块化开发方式作为功能开发形式。本框架易于功能扩展,代码维护,具有优秀的二次开发能力,为广大中小型网站用户提供了优秀的、全方位的企业网站。因此,结合 ThinkPHP 框架与 MySQL 数据库的
3、开发模式,建立一个面向中小型企业的网站通用模板,从而促使企业网站在开发技术上更快速与高效,也解决了中小型企业在业务更新、企业宣传、推广成本和推广设计技术上存在的难题。关键字:ThinkPHP 框架,MVC 设计模式,RBAC 权限,中小型企业网站通用模板IIAbstractAccording to the majority of the small and medium enterprise website construction demand analysis, the main function of the enterprise website before and after is
4、pretty much the same. This shows that most of the small and medium-sized enterprise website construction core is basically consistent. In todays instantaneous change of market environment, fast and efficient development is the key to solve the problem. For web designers, in the face of the same webs
5、ite construction requirements, this is to design a website construction template which is suitable for most small and medium-sized enterprise, and enterprise information management database. In the aspect of rapid and efficient development, the MVC pattern development can improve the development eff
6、iciency and quality, while the ThinkPHP framework inherits the advantages of the LAMP architecture, strictly follows the MVC design pattern, using RBAC access mechanism, has the advantages such as lightweight, strong expansibility, etc. It is conform to the above characteristics of development. Thro
7、ugh the study of the website construction to the needs of small and medium-sized enterprises and WEB oriented development language, I developed a site generic template for small and medium enterprise. This template uses Thinkphp + MYSQL as a technology foundation for development. Using MVC developme
8、nt mode, modular development mode as the function forms of development. This framework is easy to expand functions, code maintenance, and it has the excellent ability of second development, which provides excellent and comprehensive enterprise website for the majority of small and medium-sized web s
9、ite.Therefore, combining ThinkPHP framework and MySQL database development mode, and setting up a website for small and medium-sized enterprise general template. Thus, we can not only promote the enterprise website in the development technology more quickly and efficiently, but also solve the proble
10、m of small and medium enterprises in the business updates, enterprise publicity, promotion and popularization of design cost existing in technique.Key words: ThinkPHP framework, MVC design pattern, RBAC permissions,Small and medium-sized enterprise website general template基于 ThinkPHP 框架的中小型企业网站开发模板的
11、设计与实现III目录摘要 IAbstractII第一章 绪论 .11.1 互联网的起源和发展 .11.2 目前互联网的现状 .11.3 企业电子商务的兴起 .21.4 企业为什么要建立网站 .2第二章 ThinkPHP 框架及相关技术 .32.1 ThinkPHP 框架简介 32.2 Mysql 数据库 32.3 Apache 概述 3第三章 需求分析 .53.1 技术可行性 .53.1.1 动态网站技术介绍 .53.1.2 市场可行性 .53.1.3 语言优势 .63.1.4 操作可行性 .63.2 软件可行性分析 .63.2.1 开发环境 .63.2.2 服务器环境 .73.3 项目可行性
12、分析 .73.3.1 B/S 模式介绍 73.3.2 B/S 模式的优点 73.4 功能性需求 .83.4.1 网站前台功能 .83.4.2 网站后台功能 93.5 非功能性需求 103.5.1 后台界面 .103.5.2 前台页面 .10第四章 概要设计 .114.1 数据库设计 .114.1.1 数据库设计概述 .114.1.2 数据库需求分析 .114.1.3 数据库逻辑结构设计 .124.1.4 数据库物理结构设计 .184.2 系统结构设计 .254.2.1 本网站开发模板架构方案 254.2.2 系统架构总统设计 26第五章 详细设计 .285.1 系统公共文件核心代码 285.1
13、.1 公共配置文件及入口文件 285.1.2 后台权限控制实现 29IV5.2 网站管理后台 .305.2.1 后台总体界面 .305.2.2 管理员登录 .305.2.3 用户授权 325.2.4 数据库备份 355.2.5 前台样式设置 385.3 网站前台 .395.3.1 前台首页 .395.3.2 企业简介 .415.3.3 商品展示 .415.3.4 企业新闻 .425.3.5 旅游资源 .425.4 系统关键技术 .425.4.1 ajax 异步传输 425.4.2 响应式技术 .43第六章 系统测试 .466.1 测试概要 .466.2 测试模型 .466.3 功能测试 .46
14、6.3.1 硬件配置与测试方法 476.3.2 具体功能测试 486.3.3 测试执行情况 536.5 测试结论 .556.5.1 软件能力 .556.5.2 缺陷和限制 .55第七章 全文总结与展望 .567.1 本文总结 .567.2 改进方向 56致 谢 .57参考文献 .58基于 ThinkPHP 框架的中小型企业网站开发模板的设计与实现1第一章 绪论1.1 互联网的起源和发展Internet 的最早起源于美国国防部高级研究计划署 DARPA(Defence Advanced Research Projects Agency)的前身 ARPAnet,该网于 1969 年投入使用。由此,
15、ARPAnet 成为现代计算机网络诞生的标志。从六十年代起,由 ARPA 提供经费,联合计算机公司和大学共同研制而发展起来的ARPAnet 网络。最初,ARPAnet 主要是用于军事研究目的,它主要是基于这样的指导思想:网络必须经受得住故障的考验而维持正常的工作,一旦发生战争,当网络的某一部分因遭受攻击而失去工作能力时,网络的其他部分应能维持正常的通信工作。ARPAnet 在技术上的另一个重大贡献是 TCP/IP 协议簇的开发和利用。作为 Internet 的早期骨干网,ARPAnet 的试验并奠定了 Internet 存在和发展的基础,较好地解决了异种机网络互联的一系列理论和技术问题。198
16、3 年,ARPAnet 分裂为两部分,ARPAnet 和纯军事用的 MILNET。同时,局域网和广域网的产生和逢勃发展对 Internet 的进一步发展起了重要的作用。其中最引人注目的是美国国家科学基金会 ASF(National Science Foundation)建立的 NSFnet。NSF 在全美国建立了按地区划分的计算机广域网并将这些地区网络和超级计算机中心互联起来。NFSnet 于1990 年 6 月彻底取代了 ARPAnet 而成为 Internet 的主干网。NSFnet 对 Internet 的最大贡献是使 Internet 向全社会开放,而不象以前的那样仅供计算机研究人员和
17、政府机构使用。1990 年 9 月,由 Merit,IBM 和 MCI 公司联合建立了一个非盈利的组织先进网络科学公司 ANS(Advanced Network 添加节点、修改节点、删除节点(2)角色管理主要包括;添加角色、修改角色、删除角色、角色分配权限(3)用户管理主要包括:添加用户、修改用户、删除用户、用户更改角色(4)界面管理主要包括;设置前台模板、内容显示,联系信息、页脚信息(5)扩展模块主要包括:数据库备份、数据库还原、垃圾清理(6)内容管理主要包括:添加内容、修改内容、删除内容、审核内容(7)栏目管理主要包括:添加栏目、修改栏目、删除栏目,设置导航(8)模型管理主要包括:添加模型
18、、修改模型、删除模型、模型功能选择(9)控制面板主要包括:添加、修改、删除(提供二次开发)本项目的后台的使用用例图如下:图 3-2103.5 非功能性需求3.5.1 后台界面(1) 网站后台要求结构明了,能够很容易找到想要操作的地方。(2) 后台所填选项要有清楚说明其作用、功能。(3) 每次提交操作之后要给出明确的提示,操作是否成功。3.5.2 前台页面(1)界面要美观,但又不能太复杂,内容要突出。(2)要能兼容目前主流的浏览器。(3)前台页面还使用了响应式技术,这样大大提高了用户的体验,从而达到了更好的宣传效益。基于 ThinkPHP 框架的中小型企业网站开发模板的设计与实现11第四章 概要
19、设计概要设计是在需求分析的基础上由抽象到具体的过程。内容包括数据库设计和系统结构设计两大部分。主要目标是将系统分析阶段所提出的反映了信息需求的系统逻辑方案转换成可以实施的基于计算机与通信系统的物理(技术)方案,为下一阶段的详细编码提供必要的技术资料,应符合系统性、灵活性、可靠性、经济性的要求。4.1 数据库设计4.1.1 数据库设计概述数据库是数据管理的最新技术。十多年来数据库管理系统已从专用的应用程序发展成为通用的系统软件。由于数据库具有数据结构化,最低冗余度,较高的程序与数据独立性,易于扩充,易于编制应用程序等优点,较大的信息系统都是建立在数据库设计之上的。因此不仅大型计算机及中小型计算机
20、,甚至微型机都配有数据库管理系统。数据库系统的出现使信息系统从以加工数据的程序为中心转向围绕共享的数据库为中心的新阶段。这样既便于数据的集中管理,又有利于应用程序的研制和维护,提高了数据的利用性和相容性,提高了决策的可靠性。目前,数据库已经成为现代信息系统不可分割的重要组成部分。数据库技术也是计算机领域中发展最快的技术之一。数据库设计是把现实世界的实体模型与需求转换成数据库的模型的过程,它是建立数据库应用系统的核心问题。数据库及其应用的性能都建立在良好的数据库设计的基础之上,数据库的数据是一切操作的基础,如果数据库设计不好,那么其它一切用于提高数据库性能的方法收效都是有限的。数据库设计的关键是
21、如何使设计的数据库能合理地存储用户的数据,方便用户进行数据处理。设计数据库必须遵循一定的规则,在关系型数据库中,这种规则就是范式,范式是符合某一种级别的关系模式的集合。一般人们设计数据库遵循第三范式。即:数据库表中不包含已在其他表中包含的非主关键字信息。采用范式减少了数据冗余,节约了存储空间,同时加快了增、删、改的速度。4.1.2 数据库需求分析进行整个数据库设计必须准确了解与分析用户需求(包括数据和处理) 。用户需求分析是整个设计过程的基础,是最困难、最耗费时间的一步。作为最基本的需求分析做得是否充分与准确,决定了在其构建数据库的速度和质量。经调查可知,由于大多数企业网站都是大同小异的,而用
22、户的需求具体体现在各种信息的提供、存储、更新和查询方面,这就要求数据库结构能充分满足各种信息的输出与输入。收集基本数据、数据结构及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计12打下基础。以上面的需求分析作为设计依据,该企业网站应该有以下几个基本数据表:(1)首先是权限管理方面的数据表1、用户表:包括用户的基本信息2、用户组表:包括用户的角色信息3、用户-用户组表:包括用户的角色分配信息4、节点表:包括各个节点的信息5、节点-用户组表:包括角色的具体权限信息(2)其他基本数据表1、栏目表:包括:后台栏目及前台导航信息2、模型表:包括不同的添加内容模型3、功能表:包括添加内容的一些添
23、加工具:上传功能、编辑器等4、内容表:包括企业新闻、商品、企业信息等5、文件表:包括商品图片、附近等6、系统表:包括系统的一些基本设置信息7、样式表:包括前台的一些样式设置信息8、配置表:包括网站的一些基本配置信息9、前台模块表:包括前台不同内容显示的模块10、前台栏目:包括前台的新闻列表、商品列表等11、前台栏目-栏目表:包括前台栏目与后台栏目的关系信息4.1.3 数据库逻辑结构设计概念结构设计是数据库设计的核心。概念结构独立于数据库的逻辑结构,也独立与所使用的具体的数据库管理系统。概念模型(E-R 模型)的组成元素有:实体、属性、联系,E-R 模型用 E-R 图表示。实体是用户工作环境中所
24、涉及的事务,属性是对实体特征的描述。模型中的实体相当于一个实体集、一个表。实体用矩形框表示,实体名称标注在矩形框内。用菱形表示实体间的联系,菱形框内写上联系名,用无向边把菱形分别与有关实体相连接,在无向边旁标上联系的类型。属性是实体的性质。用椭圆框表示,与实体之间用一条线相连,表的主码是关键属性,关键属性项加下划线。各子系统模块中主键相同的字段之间存在着相互关联的关系。在程序中实现对他们的完整性和一致性控制。E-R 模型的组成元素有:实体、属性、联系。E-R 模型用 E-R 图来表示。实体是用户工作环境中所涉及的事物,属性是对实体特征的描述。在此,首先是关于权限管理方面的实体图:基于 Thin
25、kPHP 框架的中小型企业网站开发模板的设计与实现13图 4-1 用户实体图图 4-2 用户组实体图图 4-3 节点实体图14下面是其他方面的实体图:图 4-4 栏目实体图图 4-5 模型实体图图 4-6 功能实体图基于 ThinkPHP 框架的中小型企业网站开发模板的设计与实现15图 4-7 内容实体图图 4-8 文件实体图图 4-9 系统实体图16图 4-10 样式实体图图 4-11 配置实体图图 4-12 前台模块实体图基于 ThinkPHP 框架的中小型企业网站开发模板的设计与实现17图 4-13 前台栏目实体图本企业网站开发模板整体 E-R 图如下:图 4-14 本开发模板整体 E-
26、R 图184.1.4 数据库物理结构设计在实际设计的时候需要考虑到一些系统的性能、负载问题,所以数据库的设计要求更加细致,下面对每个表进行详细的设计,即数据字典。(1)think_access 表字段 类型 空 默认 注释id int(11) 否role_id smallint(6) 否node_id smallint(6) 否level tinyint(1) 否module varchar(50) 是 NULL相关索引键名 类型 唯一 紧凑 字段 基数 排序规则 空 注释PRIMARY BTREE 是 否 id 6 A 否groupId BTREE 否 否 role_id A 否nodeId
27、 BTREE 否 否 node_id A 否(2)think_column 表字段 类型 空 默认 注释id int(11) 否name varchar(25) 否t_id tinyint(1) 否 0pid tinyint(1) 否 0level tinyint(1) 否 1url varchar(200) 否display tinyint(1) 否 0page tinyint(1) 否 0jump tinyint(1) 否 0sort tinyint(2) 否status tinyint(1) 否 1remark varchar(200) 否基于 ThinkPHP 框架的中小型企业网站开发
28、模板的设计与实现19相关索引键名 类型 唯一 紧凑 字段 基数 排序规则 空 注释PRIMARY BTREE 是 否 id 20 A 否(3)think_config 表字段 类型 空 默认 注释id int(11) 否name varchar(25) 否title varchar(50) 否content varchar(100) 否相关索引键名 类型 唯一 紧凑 字段 基数 排序规则 空 注释PRIMARY BTREE 是 否 id 3 A 否(4)think_content 表字段 类型 空 默认 注释id int(11) 否c_id int(11) 否title varchar(100
29、) 否author varchar(25) 否keyword varchar(100) 否from varchar(200) 否date_time varchar(11) 否audit_time varchar(11) 否url varchar(100) 否content text 否paper varchar(400) 否ping tinyint(1) 否 0shu tinyint(1) 否 020hit int(11) 否 0linkto varchar(200) 否tui tinyint(1) 否 0new tinyint(1) 否 0advert tinyint(1) 否 0statu
30、s tinyint(1) 否 0相关索引键名 类型 唯一 紧凑 字段 基数 排序规则 空 注释PRIMARY BTREE 是 否 id 43 A 否(5)think_file 表字段 类型 空 默认 注释f_id int(11) 否n_id int(11) 否type smallint(6) 否 1 是图片 2 是附件name varchar(255) 否title varchar(200) 是 NULLsize int(11) 否hit int(10) 是 0 点击相关索引键名 类型 唯一 紧凑 字段 基数 排序规则 空 注释PRIMARY BTREE 是 否 f_id 11 A 否id B
31、TREE 否 否 f_id A 否(6)think_homemodel 表字段 类型 空 默认 注释id int(11) 否基于 ThinkPHP 框架的中小型企业网站开发模板的设计与实现21name varchar(20) 否title varchar(50) 否pid int(11) 否 0remark varchar(200) 否相关索引键名 类型 唯一 紧凑 字段 基数 排序规则 空 注释PRIMARY BTREE 是 否 id 9 A 否(7)think_node 表字段 类型 空 默认 注释id smallint(6) 否name varchar(20) 否title varcha
32、r(50) 是 NULLgroup_id int(11) 否status tinyint(1) 是 1remark varchar(255) 是 NULLdisplay smallint(6) 否 1sort smallint(6) 是 NULLpid smallint(6) 否level tinyint(1) 否相关索引键名 类型 唯一 紧凑 字段 基数 排序规则 空 注释PRIMARY BTREE 是 否 id 86 A 否level BTREE 否 否 level A 否pid BTREE 否 否 pid A 否status BTREE 否 否 status A 是name BTREE
33、否 否 name A 否(8)think_panel 表字段 类型 空 默认 注释22id int(11) 否name varchar(25) 否title varchar(50) 否status tinyint(1) 否 1 1 为开启 0 为禁止remark varchar(200) 否相关索引键名 类型 唯一 紧凑 字段 基数 排序规则 空 注释PRIMARY BTREE 是 否 id 13 A 否(9)think_role 表字段 类型 空 默认 注释id smallint(6) 否name varchar(20) 否title varchar(255) 否pid smallint(6
34、) 是 NULLstatus tinyint(1) 是 NULLremark varchar(255) 是 NULL相关索引键名 类型 唯一 紧凑 字段 基数 排序规则 空 注释PRIMARY BTREE 是 否 id 2 A 否pid BTREE 否 否 pid A 是status BTREE 否 否 status A 是(10)think_role_user 表字段 类型 空 默认 注释role_id int(10) 否user_id int(11) 否基于 ThinkPHP 框架的中小型企业网站开发模板的设计与实现23相关索引键名 类型 唯一 紧凑 字段 基数 排序规则 空 注释PRIM
35、ARY BTREE 是 否 user_id 2 A 否group_id BTREE 否 否 role_id A 否user_id BTREE 否 否 user_id A 否(11)think_style 表字段 类型 空 默认 注释id int(11) 否name varchar(25) 否title varchar(50) 否status tinyint(1) 否 1display tinyint(1) 否 0相关索引键名 类型 唯一 紧凑 字段 基数 排序规则 空 注释PRIMARY BTREE 是 否 id 2 A 否(12)think_system 表字段 类型 空 默认 注释id i
36、nt(11) 否sid int(11) 否name varchar(25) 否title varchar(200) 否type tinyint(1) 否 0 0 是联系信息 1 是页脚status tinyint(1) 否 1相关索引键名 类型 唯一 紧凑 字段 基数 排序规则 空 注释PRIMAR BTREE 是 否 id 12 A 否24键名 类型 唯一 紧凑 字段 基数 排序规则 空 注释Y(13)think_template 表字段 类型 空 默认 注释id int(11) 否name varchar(25) 否model varchar(50) 否title tinyint(1) 否
37、 0keyword tinyint(1) 否 0from tinyint(1) 否 0date_time tinyint(1) 否 0img_name tinyint(1) 否 0attach_name tinyint(1) 否 0small tinyint(1) 否 0content tinyint(1) 否 0paper tinyint(1) 否 0ping tinyint(1) 否 0shu tinyint(1) 否 0linkto tinyint(1) 否 0other tinyint(1) 否 0status tinyint(1) 否 1remark varchar(200) 否相关索引键名 类型 唯一 紧凑 字段 基数 排序规则 空 注释PRIMARY BTREE 是 否 id 8 A 否(14)think_user 表字段 类型 空 默认 注释id int(3) 否