【发明内容】
有鉴于此,有必要提供一种构建内容管理系统的方法,以达到提高工作效率、较低成本和减少出错概率的目的。
此外,还提供一种构建内容管理系统的装置,以达到提高工作效率、较低成本和减少出错概率的目的。
为达到上述目的,提出以下的技术方案:
一种构建内容管理系统的装置,包括:
配置输入单元,用于输入语义化的需求信息;
脚本单元,用于获得所述语义化的需求信息,将所述语义化的需求信息转化为用计算机语言表示的配置信息;
模板集单元,用于保存构建内容管理系统的代码,并分析所述代码,得到所述代码的共性代码和特性代码;还用于根据所述共性代码和特性代码生成模板;
模板引擎,用于将所述模板中的特性代码替换为所述配置信息;
生成单元,用于根据所述模板中共性代码和替换后的特性代码生成内容管理系统。
在一个实施例中,所述模板集单元中包括:
建数据库和数据表的模板,用于保存构建所述内容管理系统数据库的代码;
交互界面的html模板,用于保存构建所述内容管理系统交互界面的代码;
操作数据表的模板,用于保存构建针对所述内容管理系统数据库表操作的代码;和/或
Js的模板,用于保存构建所述内容管理系统中使用的js代码。
在一个实施例中,所述模板集单元包括:
共性代码保存单元,用于保存模板中的共性代码;
特性代码保存单元,用于保存模板中的特性代码,所述特性代码以变量的形式进行保存。
在一个实施例中,所述共性代码保存单元中共性代码包括:
结构化查询语言代码,用于创建内容管理系统中的公共数据库;
数据库操作代码,用于进行数据库操作;
公共处理代码,用于展示数据并检查输入内容的合法性;
存储处理逻辑及代码,用于存储文件;和/或
提示处理逻辑及代码,用于反馈通用的提示信息。
在一个实施例中,所述特性代码保存单元中特性代码包括:
内容信息代码,用于构建内容管理系统中需要管理的内容信息;
信息元代码,用于构建组成所述内容信息的信息元;
界面展现代码,用于构建每个信息元在界面上的编辑展现形式;和/或
存储内容限定代码,用于设定对每个信息元存储内容的限制。
一种构建内容管理系统的方法,包括以下步骤:
A、保存构建内容管理系统的代码,并分析所述代码,得到所述代码的共性代码和特性代码;还用于根据所述共性代码和特性代码生成模板;
B、获得所述语义化的需求信息,将所述语义化的需求信息转化为用计算机语言表示的配置信息;
C、将所述模板中的特性代码替换为所述配置信息;
D、根据所述模板中共性代码和替换后的特性代码生成内容管理系统。
在一个实施例中,所述步骤A中生成的模板为:
建数据库和数据表的模板,用于保存构建所述内容管理系统数据库的代码;
交互界面的html模板,用于保存构建所述内容管理系统交互界面的代码;
操作数据表的模板,用于保存构建针对所述内容管理系统数据库表操作的代码;或
Js的模板,用于保存构建所述内容管理系统中使用的js代码。
在一个实施例中,所述步骤A中分析得到的共性代码包括:
结构化查询语言代码,用于创建内容管理系统中的公共数据库;
数据库操作代码,用于进行数据库操作;
公共处理代码,用于展示数据并检查输入内容的合法性;
存储处理逻辑及代码,用于存储文件;和/或
提示处理逻辑及代码,用于反馈通用的提示信息。
在一个实施例中,所述步骤A中分析得到的特性代码包括:
内容信息代码,用于构建内容管理系统中需要管理的内容信息;
信息元代码,用于构建组成所述内容信息的信息元;
界面展现代码,用于构建每个信息元在界面上的编辑展现形式;和/或
存储内容限定代码,用于设定对每个信息元存储内容的限制。
在一个实施例中,所述步骤A中分析代码得到代码的特性代码之后还包括:将所述特性代码转换成变量并保存于模板。
从以上技术方案可以看出,构建内容管理系统的方法及装置对构建内容管理系统的代码进行分析,得到代码的共性部分和特性部分并保存在模板中,通过输入配置信息将代码的特性部分进行替换,结合各模板中代码的共性部分和替换后的特性部分构建内容管理系统。这样,用户只需输入配置信息即可生成相应的信息管理系统,实现了快速构建业务需要的内容管理系统,有效地提升构建速度;并且减少了大量的人力和时间投入,降低了成本。此外,整个构建过程不需要开发人员干预,减少了因为二次编码或重新开发而出错的概率。
【具体实施方式】
下面结合具体的实施例及说明书附图进行详细的描述。
构建内容管理系统的装置的基本技术构思是,对用于构建内容管理系统(CMS)的各部分代码进行分析,提炼对内容管理系统会涉及到的各部分代码的共性部分,直接保存在模板;而对于各部分代码因需求而异的特性部分,则以变量的形式出现在模板中,并将特性部分的设置接口以配置界面的形式提供给用户来输入配置信息;将输入的配置信息替换到代码的特性部分即可生成需要的CMS。
如图1所示,一种构建内容管理系统的装置主要包括:配置输入单元、脚本单元、模板集单元、模板引擎和生成单元。
一、配置输入单元
配置输入单元,用于输入语义化的需求信息。配置输入单元是用户输入需求信息的窗口,输入的是用户的内容管理需求。这些需求信息因需求而异,与构建CMS的各部分代码的特性部分相对应。提供给用户的配置界面实际就是这些特性部分的设置接口。
二、脚本单元
脚本单元,用于获得所述语义化的需求信息,将所述语义化的需求信息转化为用计算机语言表示的配置信息。脚本单元包括:
信息提取单元,用于获取用户输入的语义化的需求信息;
转换单元,用于将语义化的需求信息转化为用计算机语言表示的配置信息。
首先脚本单元获取用户的需求信息,用户输入的内容管理需求信息是一种语义级别的描述,如CMS需要管理哪几部分信息,每一部分信息是由哪些信息元组成,每个信息元在界面上的编辑展现形式,存储内容的限制等。接着把语义化的需求转化为抽象的、用计算机语言表示的配置信息,然后脚本通过模板引擎把模板中待替换的所有变量换成用户的配置信息。
三、模板集单元
模板集单元,用于保存构建内容管理系统的代码,并分析所述代码,得到所述代码的共性代码和特性代码;还用于根据所述共性代码和特性代码生成模板。模板集单元包括共性代码保存单元和特性代码保存单元,分别用于保存模板中的共性代码和保存模板中的特性代码。其中,特性代码一般是以变量的形式进行保存的。
CMS一般包括存储内容的数据库、与用户交互的界面,以及执行用户对数据库内容进行操作的后台代码。对应地,模板集单元包括多个模板,包括模板一、模板二至模板N,这些模板一般为建数据库和数据表的模板、交互界面的html模板、操作数据表的模板或Js(JavaScript)的模板,因此模板集单元一般包括:
建数据库和数据表的模板,用于保存构建所述内容管理系统数据库的代码;
交互界面的html模板,用于保存构建所述内容管理系统交互界面的代码;
操作数据表的模板,用于保存构建针对所述内容管理系统数据库表操作的代码;和/或
Js的模板,用于保存构建所述内容管理系统中使用的js代码。
四、模板引擎和生成单元
模板引擎,用于将所述模板中的特性代码替换为所述配置信息。生成单元,用于根据所述模板中共性代码和替换后的特性代码生成CMS。
模板引擎可以快速的执行模板中的变量替换,并支持逻辑判断,循环展开等功能,这样只需要编写出装置所涉及到的各部分代码的模板,然后用户给出内容管理系统的配置需求后,就由构建内容管理系统的装置来把需求中的每个细节反映到相关的代码中
构建内容管理系统的装置体现了用计算机程序生成计算机程序的思想,不仅能把开发人员从繁琐、重复的劳动中解放出来,提高了工作效率、降低了成本和出错概率;而且本装置构建内容管理系统具有代码生成速度快、配置简易的优点,可以随时应对用户需求的变更,具有很高的灵活性。
构建内容管理系统的装置用一套通用的模板和执行配置提取及模板替换的脚本即可生成满足用户需求的内容管理系统。构建内容管理系统的装置的输出是一套完整的、可运行的CMS,包括已经建好的数据库、前端交互界面和后台逻辑代码。开发人员需要做的工作只是完成前期环境的部署(apache环境、开发语言的编译器和解释器等)和配置的填写(如指定数据库主机名、用户名、密码,文档的根目录,应用程序的根目录等)。每次用户改变输入时,会有一套新的CMS生成,需求的变化会及时生效,需求中未变化的部分保持原状,从而实现自动生成的CMS新旧版本的平滑过渡。
在优选的实施例中,共性代码保存单元中共性代码包括:
结构化查询语言(Structured Query Language,SQL)代码,用于创建内容管理系统中的公共数据库;
数据库操作代码,用于进行数据库操作。数据库操作代码提供一个对数据库连接,是执行数据库操作的基础代码;
公共处理代码,用于展示数据并检查输入内容的合法性。虽然各CMS检查的内容不同,但进行检查的流程相同,检查进行的时机触发方式都是相同的、公共的,因此这部分代码也属于共性部分;
存储处理逻辑及代码,用于存储文件;和/或
提示处理逻辑及代码,用于反馈通用的提示信息。
特性代码保存单元中特性代码一般包括:
内容信息代码,用于构建内容管理系统中需要管理的内容信息;
信息元代码,用于构建组成所述内容信息的信息元;
界面展现代码,用于构建每个信息元在界面上的编辑展现形式;和/或
存储内容限定代码,用于设定对每个信息元存储内容的限制。
通过观察分析,可以发现构建CMS的代码的共性部分主要包括如何构建CMS框架;构建CMS的代码的特性部分主要包括它需要管理哪几部分信息,每一部分信息是由哪些信息元组成,每个信息元在界面上的编辑展现形式,存储内容的限制等,从而设置配置输入界面使用户可以对此类信息进行配置。
如图2所示,一种构建内容管理系统的方法,主要包括以下步骤:
步骤S101、保存构建内容管理系统(CMS)的代码,并分析所述代码,得到所述代码的共性代码和特性代码;还用于根据所述共性代码和特性代码生成模板;
步骤S102、获得所述语义化的需求信息,将所述语义化的需求信息转化为用计算机语言表示的配置信息;
步骤S103、将所述模板中的特性代码替换为所述配置信息;
步骤S104、根据所述模板中共性代码和替换后的特性代码生成CMS。
对于步骤S101,根据所述共性代码和特性代码生成的模板一般为:建数据库和数据表的模板、交互界面的html模板、操作数据表的模板或Js的模板。其中,建数据库和数据表的模板,用于保存构建所述内容管理系统数据库的代码;交互界面的html模板,用于保存构建所述内容管理系统交互界面的代码;操作数据表的模板,用于保存构建针对所述内容管理系统数据库表操作的代码;Js的模板,用于保存构建所述内容管理系统中使用的js代码。
对于步骤S101,分析构建CMS代码得到的共性代码一般包括:
结构化查询语言代码,用于创建内容管理系统中的公共数据库;
数据库操作代码,用于进行数据库操作。数据库操作代码提供一个对数据库连接,是执行数据库操作的基础代码;
公共处理代码,用于展示数据并检查输入内容的合法性。虽然各CMS检查的内容不同,但进行检查的流程相同,检查进行的时机触发方式都是相同的、公共的,因此这部分代码也属于共性部分;
存储处理逻辑及代码,用于存储文件;和/或
提示处理逻辑及代码,用于反馈通用的提示信息。
对于步骤S101,分析构建CMS代码得到的特性代码一般包括:内容信息代码,用于构建内容管理系统中需要管理的内容信息;信息元代码,用于构建组成所述内容信息的信息元;界面展现代码,用于构建每个信息元在界面上的编辑展现形式;和/或存储内容限定代码,用于设定对每个信息元存储内容的限制。
在构建内容管理系统的方法中,分析代码得到代码的特性代码之后,一般将特性代码转换成变量并保存于模板。
下面以具体构建任务为例,对构建内容管理系统的方法的工作流程进行描述,以便于理解技术方案。
假设要构建的内容管理系统的需求信息如下:
1、内容管理系统包括北京餐饮、旅游、住宿三部分信息;
2、住宿信息会包括酒店宾馆名称、住宿档次、地点、联系电话、不同房间价位和当日房间是否都已预订等信息元;
3、在编辑界面上“住宿档次”要求用下拉框展现,有六个供选项:五星级、四星级、三星级、二星级、一星级、普通;
4、存储内容的限制:联系电话不允许为空,而且必须符合北京市电话的标准格式区号‘010’及间隔符‘-’可出现也可不出现,后面跟8位数字。
根据上述需求信息的要求,执行以下步骤:
(1)、对构建CMS所涉及的代码进行分析,得到代码的共性代码和特性代码,将共性的部分直接保存在模板中,因需求而异的特性部分转换成待替换的变量保存在模板中;
(2)、根据代码的特性部分生成相应的配置界面,用户从配置界面输入语义化的需求信息。代码的特性部分主要包括:CMS需要管理的内容包括北京餐饮、旅游、住宿三部分信息;住宿信息会包括酒店宾馆名称、住宿档次、地点、联系电话、不同房间价位和当日房间是否都已预订等信息元;在编辑界面上“住宿档次”要求用下拉框展现,有六个供选项:五星级、四星级、三星级、二星级、一星级、普通;其中,联系电话不允许为空,而且必须符合北京市电话的标准格式区号‘010’及间隔符‘-’可出现也可不出现,后面跟8位数字,设置相应的配置输入界面,以使用户可以对此类信息进行配置。
(3)、脚本单元获得语义化的需求信息,将所述语义化的需求信息转化为用计算机语言表示的配置信息;
(4)、通过模板引擎将模板中特性部分待替换的变量替换为所述抽象的配置信息;模板引擎可以快速的执行模板中的变量替换,这样只需要编写出装置所涉及到的各部分代码的模板,然后用户给出内容管理系统的配置需求后,就由构建内容管理系统的装置来把需求中的每个细节反映到相关的代码中。
(5)、根据各模板中共性代码和替换后的特性代码生成CMS。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。