基于MVC模式的中小企业CMS系统核心设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

基于MVC模式的中小企业CMS系统核心设计崔伟(泸州职业技术学院,信息工程系,四川泸州,646005)摘要:本文在分析中小企业网站建设需求特点的基础上,讨论了中小企业CMS系统的基础架构设计。基于MVC设计模式和PHP语言设计了中小企业CMS系统的数据处理、控制器、视图、属性管理和模型管理,给出了适合于中小企业网站建设的CMS系统的核心设计。关键词:MVC;模板解析;内容管理;属性管理;模型管理1引言随着互联网技术的不断发展,广大的中小型企业逐渐认识到企业网站在宣传企业产品、展示企业形象和促进产品销售等方面的重要作用,纷纷开始建立或改版自己的企业网站。目前主流的企业建站方案有两种:基于客户需求采用完全定制开发的模式建立企业网站;基于现成的网站内容管理系统(ContentManagementSystem,CMS)进行二次开发以适应企业需求构建企业网站。全定制开发的方式普遍存在技术力量要求高、人力资源投入大和研发周期长等问题,通常不适合中小型企业网站的建设,而目前市场上主流的CMS系统往往针对通用化的网站建设需求设计,并不能完全适应中小企业网站建设的特点。因此构建针对中小企业网站建设的CMS系统有着重要的社会意义和经济前景。2中小企业CMS系统的基础架构的设计CMS是专门面向互联网站内容编辑与发布的应用系统,旨在管理庞大、烦杂的后台数据和信息,规范网站后台信息管理流程,统一数据存储格式,减少网站维护的投入,加强信息披露的权限管理,从而大大减轻建立各类信息网站的复杂性,方便网站的运营管理、内容维护[1]。从根本上说,CMS的首要任务是分离数据的管理和数据的展示。对数据的管理而言,虽然总体上中小企业网站对数据存储和数据处理的需求都很类似,但各企业仍有一定的特殊需求。如何设计高度灵活的数据存储和数据处理机制,以支持未知的、相互差别很大的用户需求,是中小企业CMS系统设计面临的第一个问题。在数据的展示方面,各企业对网站外观的要求千差万别,不可能构建一个能内置任何前端界面要求的CMS系统。普遍的思路是基于模板技术,由用户使用模板设计语言(通常较为简单)根据自己的需求设计制作页面展示模板,由CMS提取填充页面内容所需的数据,将模板解析为网站前端页面,将数据填充到前端页面中,以形成最终的展示效果。合理的设计模板解析引擎、提供方便的数据获取接口,是中小企业CMS系统设计面临的第二个问题。此外,由于中小企业普遍缺乏专业的信息管理人员,网站的管理工作通常由企业行政人员兼职负责,因此对企业网站管理的易用性提出了较高的要求;由于网站管理人员相关知识技能水平层次不齐,因此对网站各种功能的权限控制要求也较为严格;由于中小企业大多不可能投资建立自己的服务器和机房,因此通常只能是租用虚拟主机或VPS服务器部署企业网站;对网站的安全性要求也较高。总的来说,中小企业网站CMS系统还需要解决系统的易用性、权限配置和安全设置方面的要求。综上,提出中小企业CMS的基础架构如图1所示:图1中小企业CMS系统架构系统基于MVC设计模式构建。MVC设计模式可以将应用程序的数据和表现相互分离[2],通过控制器将两者相连。系统使用前置控制器接受并解析用户的请求,将用户请求路由到合适的动作控制器上[3]。动作控制器调用模型(Model)通过数据访问层访问数据层,实现相应业务数据的处理,处理好的数据通过控制器发送到模板解析引擎,与视图模板一起编译为服务器脚本文件。脚本文件一方面使用控制器发送的数据,另一方面也可以直接操作数据库提取合适的数据,最终生成HTML文件响应给用户。系统使用PHP编程实现。PHP是当前最流行的Web编程语言之一,PHP运行速度快,跨平台,对服务器要求低[4][5],适合作为中小企业CMS系统的脚本语言。3系统的底层设计3.1系统数据处理在数据层,通常数据都存储在数据库中,但有部分数据如系统配置文件等,可能以xml或纯文本文件等形式存储。在中小企业CMS系统中,使用专门的数据访问层实现系统对数据源的访问。为确保系统的数据处理效率,当数据源是某种关系数据库时,系统使用轻量级的数据访问抽象层PDO实现对各种主流关系数据库的访问。在PDO的基础上,系统基于表数据入口(TableDataGateway)模式封装查询、更新、删除、创建等(CRUD)常用的数据库操作。系统为每一类数据处理功能提供一个数据模型。数据模型调用数据访问层实现数据访问,并对返回的数据进行处理后提交给控制器。模型通常包含有一系列方法,这些方法接收控制器发送的参数,根据参数直接或间接(使用数据访问层的封装)的组装SQL操作语句,实现对特定数据的操作。3.2系统控制器设计系统控制器主要包括前置控制器和动作控制器。前置控制器主要完成系统核心的加载和启动、用户请求的解析和路由。在中小企业CMS中,前置控制器是系统的唯一入口。通过Apache服务器的Rewrite模式,将所有的请求重定向到前置控制器上[6]。前置控制器分析请求中的URL参数,将URL中的动作和方法参数分离,加载指定的动作控制器实例并调用其中适当的模型方法。数据层前置控制器HTML文件数据访问层视图模板客户端内置数据模型自定义数据模型用户模型分类模型权限模型系统模型动作控制器模板解析引擎脚本文件视图资讯管理模块文件管理模块图片管理模块商品管理模块自定义模块Eg.招聘管理分类管理器用户管理器权限管理器日志管理器数据统计等模型动作控制器封装系统的业务逻辑,每一个动作控制器完成一个方面的事务,动作控制器的每一个方法(动作,action)完成一个具体的操作。动作控制器调用对应的模型获取数据,并根据封装的业务逻辑对数据进行加工处理。数据处理完毕后,动作控制器将选择合适的试图模板,并将数据和模板一起发送给模板解析引擎进一步处理。3.3系统视图层设计视图层的基础是模板技术。模板是一系列的类似HTML文档的纯文本文件。模板以HTML为基础,将需要动态更新的内容区域以模板变量替换。模板解析引擎接收到动作控制器发送的数据后,将读取模板文件,扫描其中的模板变量,用接收到的数据替换模板变量。替换后的将模板内容输出到纯HTML中,即可响应给客户端[7]。模板解析引擎通常使用正则表达式构建,运行效率较低。需要为系统配备完善的缓存体系。在中小企业CMS系统中,采用双重缓存体系。即,模板解析引擎在第一次解析模板时,会将解析生成的脚本文件缓存,以后需要再次解析时,将首先读取模板文件的最后修改时间,若改时间早于脚本文件缓存时间,则跳过解析,直接执行缓存的脚本文件,生成最终HTML页。系统也可以将生成的HTML缓存,当执行脚本文件前,先检测HTML缓存是否存在,若存在,则直接使用HTML缓存页面。这样当系统模板没有修改时,每次用户的请求都可以通过前置控制器直接定向到HTML页面上,而不需要经过动作控制器、模型和视图的一系列处理。测试结果表明,中小企业CMS系统启用双重缓存时,响应速度将提升两个数量级。3.4配置管理和模型管理由于网站面向大量中小企业用户,需求变化性大,要求系统具有很高的扩展性。不同用户的需求归根结底即为对网站内容管理(包括内容数据存储、数据处理方式和数据展示方式三个方面)的不同要求。任何CMS系统都提前预置能满足一切用户需要的内容管理功能。因此需要提供自定义内容模型的接口以支持对内容管理功能的定制。本系统将各种类别的内容数据分为属性数据和正文数据两个部分。从数据存储的角度,正文数据的数据类型、字段等不可修改;属性数据的字段数量、名称、类型等都可以由用户根据需要通过属性管理器进行动态配置。从数据处理的角度,可以通过属性管理器为不同的属性字段挂接诸如数据校验等数据处理逻辑。从数据的展示角度,可以通过模型管理器,为不同的内容数据(模型)绑定不同的前端模板。模型管理器还可以将模型绑定到不同的分类(栏目)上,从而最终实现中小企业网站的灵活定制。参考文献[1]耿璐,聂足.基于CMS的企业网站的设计与实现[J].计算机工程与设计.2009,30(2):351-361[2]任中方等.MVC模式研究的综述[J].计算机应用研究.2004.10:1-4[3]崔伟.基于MVC设计模式的PHP快速开发框架研究与实现[D].西安:西北农林科技大学.2010[4]BissonS.,AnintroductiontoPHP[J],ApplicationDevelopmentAdvisor,May2002,6(4):38~41[5]GamratB.,PHPandpreprocessedWebpages[J],Dr.Dobb’SJournal,January2006,31(1):46~48[6]熊晓飞.基于Web的内容管理系统的设计和实现[D].北京:北京交通大学.2010[7]王家明.一种严格分离模型和视图的模板引擎设计方法[D].广州:华南理工大学,2010作者简介:崔伟(1983.7-),男,汉族,四川省自贡市大安区,工学硕士,助教。主要从事基于网络的计算机应用技术研究;作者身份证号:510304198307092316.联系人:崔伟,电话18048689177,E-mail:183107549@qq.comQQ:183107549.单位:泸州职业技术学院信息工程系,通信地址:四川省泸州市江阳区钓鱼台路4号景林园小区。邮编:646000

1 / 4
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功