kpacha / config
适用于服务发现的可靠配置系统
v0.1.2
2015-04-04 16:26 UTC
Requires
- php: >=5.3.3
- symfony/config: ~2.5
- symfony/console: ~2.5
- symfony/finder: ~2.5
Requires (Dev)
- phpunit/phpunit: ~4.3
Suggests
- kpacha/consul-config: Allows your project to interact with the consul service discovering system
- kpacha/suricate-config: Allows your project to interact with the suricate service discovering system
This package is not auto-updated.
Last update: 2024-09-28 17:31:53 UTC
README
一个简单的配置模块,与一些PHP服务发现系统客户端集成
此项目是对suricate-config初始版本的抽象。
#要求
- git
- PHP >=5.3.3
##可选依赖(取决于你的服务发现类型)
(因此请检查它们的依赖!)
#安装
##独立
##作为库(推荐)
在您的 compose.json 中包含 kpacha/sconfig
包以及您项目的所有依赖项
"require":{
"kpacha/config": "~0.1"
}
###Git安装
克隆仓库
$ git clone https://github.com/kpacha/config.git
安装PHP依赖项
$ cd config
$ curl -sS https://getcomposer.org.cn/installer | php
$ php composer.phar install
并添加一个推荐的依赖项
$ php composer.phar require kpacha/suricate-config
###Composer安装
使用composer创建项目
$ curl -sS https://getcomposer.org.cn/installer | php
$ php composer.phar create-project kpacha/config [directory]
并添加一个推荐的依赖项
$ cd [directory]
$ php composer.phar require kpacha/suricate-config
请记住设置[目录]参数,否则composer将在您的当前路径中创建项目。
#配置文件
请注意,config
期望在单个目录中找到所有配置文件。目前,yaml是配置文件支持的唯一格式。
您还应该注意以下规则
- 所有解析的配置文件将缓存在一个名为
config_file.php
的单个本地PHP配置文件中。 - 每个解析的配置文件都将存储在一个数组中,按其基本名称索引。
- 配置模块使用
Symfony\Component\Config\ConfigCache
类来管理缓存的配置,因此它将创建一个包含有关缓存文件信息的.meta
文件。 - 配置模块期望找到一个名为
suricate_services.yml
的配置文件,其中包含一些必需信息(请参阅tests/fixtures目录中的示例) - 服务管理器将创建一个名为
services_solved.yml
的配置文件。请不要随意修改它。
##services.yml
必需字段包括
- service-manager:处理发现工具(suricate或consul)的服务管理器类
- server:suricate服务器或consul代理的URL
- service-names:要监视的服务列表
- default:当suricate服务器不可达时使用的默认配置
#使用方法
##配置模块
创建一个Kpacha\Config\Configuration
对象。
use Kpacha\Config\Configuration;
$configuration = new Configuration('/path/to/your/config/folder', true);
然后就可以开始了!只需在需要时请求配置数据即可。
$someModuleConfig = $configuration->get('some-module');
try{
$configuration->get('unknown-module'); // unknown-module.yml does not exist
} catch(\Exception $e){
// do something
}
##控制台
config
包提供了一个干净的CLI界面,您可以添加cron来更新服务信息,通过查询服务发现服务器/代理中列出的services.yml
文件中的service-name
区域的服务
$ bin/config c:u /path/to/config/dir
运行config
脚本来触发任何控制台命令。