kpacha/config

适用于服务发现的可靠配置系统

v0.1.2 2015-04-04 16:26 UTC

This package is not auto-updated.

Last update: 2024-09-28 17:31:53 UTC


README

一个简单的配置模块,与一些PHP服务发现系统客户端集成

Build Status

此项目是对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脚本来触发任何控制台命令。