admin 管理员组

文章数量: 1184232


2024年4月29日发(作者:value的用法及短语)

(19)中华人民共和国国家知识产权局

(12)发明专利申请

(10)申请公布号

CN 108196876 A

(43)申请公布日

2018.06.22

(21)申请号 2.9

(22)申请日 2017.11.29

(71)申请人 链家网(北京)科技有限公司

地址 100085 北京市海淀区西二旗西路2号

院35号楼01层102-1

(72)发明人 夏云 

(74)专利代理机构 北京路浩知识产权代理有限

公司 11002

代理人 王莹 李相雨

(51).

G06F

8/71

(2018.01)

G06F

8/65

(2018.01)

权利要求书2页 说明书5页 附图2页

C

N

1

0

8

1

9

6

8

7

6

A

(54)发明名称

基于文件的PHP业务配置方法及中心服务器

(57)摘要

本发明公开一种基于文件的PHP业务配置方

法及中心服务器,不依赖其他软件,部署简单,运

维成本低,在宕机时不需要考虑数据备份的问

题。服务器包括:界面模块、配置文件生成引擎、

嵌入模块和创建模块;其中,所述界面模块,用于

提供一个供用户增加和修改配置的界面,并将用

户增加或修改后的配置写入数据库中;所述配置

文件生成引擎,用于读取所述数据库中的配置数

据,根据读取的配置数据生成php配置文件,并将

所述php配置文件提交到所述php配置文件所在

的git仓库里;所述嵌入模块,用于将所述php配

置文件所在的git仓库以submodule子模块的形

式嵌入目标代码仓库中,并配置git hook以实现

submodule子模块的自动更新;所述创建模块,用

于使用代码发布工具创建一个发布任务。

CN 108196876 A

权 利 要 求 书

1/2页

1.一种基于文件的PHP业务配置方法,其特征在于,包括:

获取用户增加或修改后的PHP业务配置数据,并将所述用户增加或修改后的PHP业务配

置数据写入数据库中,其中,用户增加或修改后的PHP业务配置数据区分测试环境和生产环

境;

读取所述数据库中的PHP业务配置数据,根据读取的PHP业务配置数据生成php配置文

件,并将所述php配置文件提交到所述php配置文件所在的git仓库里;

将所述php配置文件所在的git仓库以submodule子模块的形式嵌入目标代码仓库中,

并配置钩子文件git hook以实现submodule子模块的自动更新;

使用代码发布工具创建一个发布任务,其中,该发布任务用于直接将所述submodule子

模块的代码进行编译、打包和发布。

2.根据权利要求1所述的方法,其特征在于,每一个php配置文件使用一个接口

interface和一个特征trait来描述,该php配置文件的入口文件里使用定义的常量

来区分应用的环境,所述常量放在所述接口interface中,所述特征trait用于定义该php配

置文件的配置数据生成的配置函数。

3.根据权利要求2所述的方法,其特征在于,还包括:

使用代码发布工具创建另一个发布任务,其中,该另一个发布任务用于在发布目标代

码的同时自动拉取对应的submodule子模块的代码,共同进行编译、打包和发布。

4.根据权利要求2或3所述的方法,其特征在于,所述数据库为mysql数据库。

5.一种基于文件的PHP业务配置中心服务器,其特征在于,包括:

界面模块、配置文件生成引擎、嵌入模块和创建模块;其中,

所述界面模块,用于提供一个供用户增加和修改PHP业务配置数据的界面,并将用户增

加或修改后的PHP业务配置数据写入数据库中,其中,用户增加或修改后的PHP业务配置数

据区分测试环境和生产环境;

所述配置文件生成引擎,用于读取所述数据库中的PHP业务配置数据,根据读取的PHP

业务配置数据生成php配置文件,并将所述php配置文件提交到所述php配置文件所在的git

仓库里,其中,不同环境下的php配置文件放在不同的目录下提交至git仓库,所述php配置

文件使用特性trait区分应用的环境;

所述嵌入模块,用于将所述php配置文件所在的git仓库以submodule子模块的形式嵌

入目标代码仓库中,并配置钩子文件git hook以实现submodule子模块的自动更新;

所述创建模块,用于使用代码发布工具创建一个发布任务,其中,该发布任务用于直接

将所述submodule子模块的代码进行编译、打包和发布。

6.根据权利要求5所述的服务器,其特征在于,每一个php配置文件使用一个接口

interface和一个特征trait来描述,该php配置文件的入口文件里使用定义的常量

来区分应用的环境,所述常量放在所述接口interface中,所述特征trait用于定义该php配

置文件的配置数据生成的配置函数。

7.根据权利要求6所述的服务器,其特征在于,所述创建模块,还用于使用代码发布工

具创建另一个发布任务,其中,该另一个发布任务用于在发布目标代码的同时自动拉取对

应的submodule子模块的代码,共同进行编译、打包和发布。

8.根据权利要求6或7所述的服务器,其特征在于,所述数据库为mysql数据库。

2

CN 108196876 A

权 利 要 求 书

2/2页

9.一种电子设备,其特征在于,包括:处理器、存储器、总线及存储在存储器上并可在处

理器上运行的计算机程序;

其中,所述处理器,存储器通过所述总线完成相互间的通信;

所述处理器执行所述计算机程序时实现如权利要求1-4中任一项所述的方法。

10.一种非暂态计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程

序,该计算机程序被处理器执行时实现如权利要求1-4中任一项所述的方法。

3

CN 108196876 A

说 明 书

基于文件的PHP业务配置方法及中心服务器

1/5页

技术领域

[0001]

本发明涉及计算机领域,具体涉及一种基于文件的PHP业务配置方法及中心服务

器。

背景技术

[0002]

PHP(Hypertext Preprocessor,超文本预处理器)是一种通用开源脚本语言。语法

吸收了C语言、Java和Perl的特点,利于学习,使用广泛,也正因为PHP语言的特点,它非常适

合用于快速迭代的互联网应用。相比于Java等语言开发的后台应用,PHP可以更容易地实现

配置的热更新,在小型网站的后台开发中,甚至可以直接在生产环境进行代码修改,并且实

时生效。目前主流的PHP后台应用配置中心方案大多基于内存实现,例如etcd、zookeeper、

redis等。这类方案具有配置灵活、高可用等特点,但也有一些不方便的地方:例如需要在服

务器server上部署代理程序,同时需要对代理程序进行监活,增加了运维成本;需要考虑宕

机时数据备份的问题等。

发明内容

[0003]

针对现有技术存在的不足和缺陷,本发明提供一种基于文件的PHP业务配置方法

及中心服务器。

[0004]

一方面,本发明实施例提出一种基于文件的PHP业务配置方法,包括:

[0005]

获取用户增加或修改后的PHP业务配置数据,并将所述用户增加或修改后的PHP业

务配置数据写入数据库中,其中,用户增加或修改后的PHP业务配置数据区分测试环境和生

产环境;

[0006]

读取所述数据库中的PHP业务配置数据,根据读取的PHP业务配置数据生成php配

置文件,并将所述php配置文件提交到所述php配置文件所在的git仓库里;

[0007]

将所述php配置文件所在的git仓库以submodule子模块的形式嵌入目标代码仓库

中,并配置钩子文件git hook以实现submodule子模块的自动更新;

[0008]

使用代码发布工具创建一个发布任务,其中,该发布任务用于直接将所述

submodule子模块的代码进行编译、打包和发布。

[0009]

另一方面,本发明实施例提出一种基于文件的PHP业务配置中心服务器,包括:

[0010]

界面模块、配置文件生成引擎、嵌入模块和创建模块;其中,

[0011]

所述界面模块,用于提供一个供用户增加和修改PHP业务配置数据的界面,并将用

户增加或修改后的PHP业务配置数据写入数据库中,其中,用户增加或修改后的PHP业务配

置数据区分测试环境和生产环境;

[0012]

所述配置文件生成引擎,用于读取所述数据库中的PHP业务配置数据,根据读取的

PHP业务配置数据生成php配置文件,并将所述php配置文件提交到所述php配置文件所在的

git仓库里,其中,不同环境下的php配置文件放在不同的目录下提交至git仓库,所述php配

置文件使用特性trait区分应用的环境;

4

CN 108196876 A

[0013]

说 明 书

2/5页

所述嵌入模块,用于将所述php配置文件所在的git仓库以submodule子模块的形

式嵌入目标代码仓库中,并配置钩子文件githook以实现submodule子模块的自动更新;

[0014]

所述创建模块,用于使用代码发布工具创建一个发布任务,其中,该发布任务用于

直接将所述submodule子模块的代码进行编译、打包和发布。

[0015]

第三方面,本发明实施例提供一种电子设备,包括:处理器、存储器、总线及存储在

存储器上并可在处理器上运行的计算机程序;

[0016]

其中,所述处理器,存储器通过所述总线完成相互间的通信;

[0017]

所述处理器执行所述计算机程序时实现上述方法。

[0018]

第四方面,本发明实施例提供一种非暂态计算机可读存储介质,所述存储介质上

存储有计算机程序,该计算机程序被处理器执行时实现上述方法。

[0019]

本发明实施例提供的基于文件的PHP业务配置方法及中心服务器,配置好的数据

以.php文件的形式产出,以git submodule的形式耦合入代码库中,其中文件生成引擎用到

了PHP5的新特性trait,创造性地解决了多版本、多配置维度共存的效果,并结合git

submodule实现了配置独立维护、多项目共享配置的能力。本方案的配置数据可以区分生产

和测试环境、实现多类别的配置数据,配置文件单独上线即可实现动态配置管理,相较于现

有技术,本方案不依赖其他软件,部署简单,运维成本低,且在宕机时不需要考虑数据备份

的问题。

附图说明

[0020]

图1为本发明基于文件的PHP业务配置方法一实施例的流程示意图;

[0021]

图2为本发明基于文件的PHP业务配置中心服务器一实施例的结构示意图;

[0022]

图3为本发明实施例提供的一种电子设备的实体结构示意图。

具体实施方式

[0023]

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例

中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明

一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有

做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

[0024]

参看图1,本实施例公开一种基于文件的PHP业务配置方法,包括:

[0025]

S1、获取用户增加或修改后的PHP业务配置数据,并将所述用户增加或修改后的

PHP业务配置数据写入数据库中,其中,用户增加或修改后的PHP业务配置数据区分测试环

境和生产环境;

[0026]

S2、读取所述数据库中的PHP业务配置数据,根据读取的PHP业务配置数据生成php

配置文件,并将所述php配置文件提交到所述php配置文件所在的git仓库里;

[0027]

S3、将所述php配置文件所在的git仓库以submodule子模块的形式嵌入目标代码

仓库中,并配置钩子文件git hook以实现submodule子模块的自动更新;

[0028]

S4、使用代码发布工具创建一个发布任务,其中,该发布任务用于直接将所述

submodule子模块的代码进行编译、打包和发布。

[0029]

本发明实施例提供的基于文件的PHP业务配置方法,配置好的数据以.php文件的

5

CN 108196876 A

说 明 书

3/5页

形式产出,以git submodule的形式耦合入代码库中,其中文件生成引擎用到了PHP5的新特

性trait,创造性地解决了多版本、多配置维度共存的效果,并结合git submodule实现了配

置独立维护、多项目共享配置的能力。本方案的配置数据可以区分生产和测试环境、实现多

类别的配置数据,配置文件单独上线即可实现动态配置管理,相较于现有技术,本方案不依

赖其他软件,部署简单,运维成本低,且在宕机时不需要考虑数据备份的问题。

[0030]

在前述方法实施例的基础上,每一个php配置文件使用一个接口interface和一个

特征trait来描述,该php配置文件的入口文件里使用定义的常量来区分应用的环

境,所述常量放在所述接口interface中,所述特征trait用于定义该php配置文件的配置数

据生成的配置函数。

[0031]

在前述方法实施例的基础上,所述方法还可以包括:

[0032]

使用代码发布工具创建另一个发布任务,其中,该另一个发布任务用于在发布目

标代码的同时自动拉取对应的submodule子模块的代码,共同进行编译、打包和发布。

[0033]

在前述方法实施例的基础上,所述数据库可以为mysql数据库。

[0034]

参看图2,本实施例公开一种基于文件的PHP业务配置中心服务器,包括:

[0035]

界面模块1、配置文件生成引擎2、嵌入模块3和创建模块4;其中,

[0036]

所述界面模块1,用于提供一个供用户增加和修改的PHP业务配置数据的界面,并

将用户增加或修改后的PHP业务配置数据写入数据库中,其中,用户增加或修改后的PHP业

务配置数据区分测试环境和生产环境;

[0037]

可以理解的是,本方案中业务配置中心服务器可以是为了解决同一套服务端后台

支持不同城市的网站提供不同样式乃至功能而设计的,因而基本的查询维度可以分为运行

环境、城市、配置项目。基于此,界面模块1提供一个简易的界面,用户可以增加配置、更改配

置,同时区分测试环境和生产环境。用户增加或修改后的配置写入数据库中进行持久化存

储,优选为mysql数据库。

[0038]

所述配置文件生成引擎2,用于读取所述数据库中的PHP业务配置数据,根据读取

的PHP业务配置数据生成php配置文件,并将所述php配置文件提交到所述php配置文件所在

的git仓库里,其中,不同环境下的php配置文件放在不同的目录下提交至git仓库,所述php

配置文件使用特性trait区分应用的环境;

[0039]

本实施例中,配置文件生成引擎2读取数据库里的内容,将其转化为PHP配置文件,

并提交到配置文件的git仓库里,为了便于区分测试环境和生产环境,可以将两套环境的

PHP配置文件放在不同的目录下提交至git仓库,比如test/和prod/目录。

[0040]

使用php配置文件中配置数据的方式是代码调用,PHP配置文件里需要定义常量及

函数。不同类别的配置通常希望放在不同文件,便于阅读和查找问题。本实施例中生成的配

置文件里可以使用接口interface和特征trait共同实现,其中接口interface用于定义常

量,特征trait用于定义函数。使用测试环境的配置还是生产环境的配置可以由中

定义的常量env来设置。因为特征trait里不能定义常量,所以该常量放在接口interface

中,在配置文件入口里通过常量env来判断加载配置文件的具体路径,比如是test还是

prod。特征Trait里是根据数据库中的配置数据生成的配置函数(函数名可以在配置文件生

成引擎里预定义好)。

[0041]

所述嵌入模块3,用于将所述php配置文件所在的git仓库以submodule子模块的形

6

CN 108196876 A

说 明 书

4/5页

式嵌入目标代码仓库中,并配置git hook以实现submodule子模块的自动更新;

[0042]

git submodule是一种公用类库的解决方案,它将一个代码仓库嵌入进另一个代

码仓库中,本实施例中使用git submodule可以使配置文件被多个项目共同使用,从而能够

实现配置文件的独立维护与代码复用。

[0043]

所述创建模块4,用于使用代码发布工具创建一个发布任务,其中,该发布任务用

于直接将所述submodule子模块的代码进行编译、打包和发布。

[0044]

本实施例中可以使用代码发布工具jekens,也可以使用其它代码发布工具,此处

不再赘述。代码发布工具创建的发布任务用于直接发布配置代码,利用PHP语言的特点,可

以实现热更新。

[0045]

本发明实施例提供的基于文件的PHP业务配置中心服务器,配置好的数据以.php

文件的形式产出,以git submodule的形式耦合入代码库中,其中文件生成引擎用到了PHP5

的新特性trait,创造性地解决了多版本、多配置维度共存的效果,并结合git submodule实

现了配置独立维护、多项目共享配置的能力。本方案的配置数据可以区分生产和测试环境、

实现多类别的配置数据,配置文件单独上线即可实现动态配置管理,相较于现有技术,本方

案不依赖其他软件,部署简单,运维成本低,且在宕机时不需要考虑数据备份的问题。

[0046]

在前述服务器实施例的基础上,所述创建模块,还可以用于使用代码发布工具创

建另一个发布任务,其中,该另一个发布任务用于在发布目标代码的同时自动拉取对应的

submodule子模块的代码,共同进行编译、打包和发布。

[0047]

本实施例中,该另一个发布任务用于版本发布,在发布目标代码的同时去拉取git

仓库中submodule的代码,共同进行编译打包发布。

[0048]

图3示出了本发明实施例提供的一种电子设备的实体结构示意图,如图3所示,该

电子设备可以包括:处理器11、存储器12、总线13及存储在存储器12上并可在处理器11上运

行的计算机程序;

[0049]

其中,所述处理器11,存储器12通过所述总线13完成相互间的通信;

[0050]

所述处理器11执行所述计算机程序时实现上述各方法实施例所提供的方法,例如

包括:获取用户增加或修改后的PHP业务配置数据,并将所述用户增加或修改后的PHP业务

配置数据写入数据库中,其中,用户增加或修改后的PHP业务配置数据区分测试环境和生产

环境;读取所述数据库中的PHP业务配置数据,根据读取的PHP业务配置数据生成php配置文

件,并将所述php配置文件提交到所述php配置文件所在的git仓库里;将所述php配置文件

所在的git仓库以submodule子模块的形式嵌入目标代码仓库中,并配置钩子文件git hook

以实现submodule子模块的自动更新;使用代码发布工具创建一个发布任务,其中,该发布

任务用于直接将所述submodule子模块的代码进行编译、打包和发布。

[0051]

本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该

计算机程序被处理器执行时实现上述各方法实施例所提供的方法,例如包括:获取用户增

加或修改后的PHP业务配置数据,并将所述用户增加或修改后的PHP业务配置数据写入数据

库中,其中,用户增加或修改后的PHP业务配置数据区分测试环境和生产环境;读取所述数

据库中的PHP业务配置数据,根据读取的PHP业务配置数据生成php配置文件,并将所述php

配置文件提交到所述php配置文件所在的git仓库里;将所述php配置文件所在的git仓库以

submodule子模块的形式嵌入目标代码仓库中,并配置钩子文件git hook以实现submodule

7

CN 108196876 A

说 明 书

5/5页

子模块的自动更新;使用代码发布工具创建一个发布任务,其中,该发布任务用于直接将所

述submodule子模块的代码进行编译、打包和发布。

[0052]

虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发

明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求

所限定的范围之内。

8

CN 108196876 A

说 明 书 附 图

1/2页

图1

9

CN 108196876 A

说 明 书 附 图

2/2页

图2

图3

10


本文标签: 配置 业务 数据 配置文件 代码