2017 © Pedro Peláez
 

library config

Resilent configuration system for service discovering

image

kpacha/config

Resilent configuration system for service discovering

  • Saturday, April 4, 2015
  • by kpacha
  • Repository
  • 1 Watchers
  • 0 Stars
  • 46 Installations
  • PHP
  • 2 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 3 Versions
  • 0 % Grown

The README.md

config

A simple config module integrated with some service discovery system clients for php, (*1)

Build Status, (*2)

This project is an abstraction of the initial versions of suricate-config., (*3)

Requirements

  • git
  • PHP >=5.3.3

Optional dependencies (depending on your service discovering flavour)

(so check their dependencies!), (*4)

Installation

Standalone

As a library (recomended)

Include the kpacha/sconfig package in your compose.json with all the dependencies of your project, (*5)

"require":{
    "kpacha/config": "~0.1"
}

Git installation

Clone the repo, (*6)

$ git clone https://github.com/kpacha/config.git

Install the php dependencies, (*7)

$ cd config
$ curl -sS https://getcomposer.org/installer | php
$ php composer.phar install

and add one of the recommended dependencies, (*8)

$ php composer.phar require kpacha/suricate-config

Composer installation

Create a project with composer, (*9)

$ curl -sS https://getcomposer.org/installer | php
$ php composer.phar create-project kpacha/config [directory]

and add one of the recommended dependencies, (*10)

$ cd [directory]
$ php composer.phar require kpacha/suricate-config

Remeber to set the [directory] parameter or composer will create the project in your current path., (*11)

Config files

Note that config expects to find all your config files in a single dir. Currently, yaml is the only supported format for config files., (*12)

Also, you should keep in mind those rules:, (*13)

  • All parsed config files will be cached in a single native php config file called config_file.php.
  • Every parsed config file will be stored in an array, indexed by its basename.
  • The config module uses the Symfony\Component\Config\ConfigCache class to manage the cached configuration, so it will create a .meta file with some info about the cached files.
  • The config module expects to find a config file called suricate_services.yml with some required info (check the tests/fixtures dir for an example)
  • The service manager will create a config file called services_solved.ymlfile. Please, do not play with it.

services.yml

The required fields are:, (*14)

  • service-manager: the class of the service manager to handle the discovering tool (suricate or consul)
  • server: the url of the suricate server or the consul agent
  • service-names: the list of services to watch
  • default: the default configuration to use when the suricate server is not reachable

Usage

Config module

Create a Kpacha\Config\Configuration object., (*15)

use Kpacha\Config\Configuration;
$configuration = new Configuration('/path/to/your/config/folder', true);

And you're ready to go! Just ask for your config data whenever you need it., (*16)

$someModuleConfig = $configuration->get('some-module');

try{
    $configuration->get('unknown-module'); // unknown-module.yml does not exist
} catch(\Exception $e){
   // do something
}

Console

The config packages exposes a clean CLI interface so you could add a cron to update the service info querying the service discovering server/agent for the services listed in the service-name area of your services.yml file with, (*17)

$ bin/config c:u /path/to/config/dir

Run the config script to trigger any console command., (*18)

The Versions

04/04 2015

dev-master

9999999-dev

Resilent configuration system for service discovering

  Sources   Download

MIT

The Requires

 

The Development Requires

by Avatar kpacha

04/04 2015

v0.1.2

0.1.2.0

Resilent configuration system for service discovering

  Sources   Download

MIT

The Requires

 

The Development Requires

by Avatar kpacha

04/04 2015

v0.1.1

0.1.1.0

Resilent configuration system for service discovering

  Sources   Download

MIT

The Requires

 

The Development Requires

by Avatar kpacha