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
版权声明:本文标题:基于文件的PHP业务配置方法及中心服务器[发明专利] 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1714366855a676978.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论