linkorb / hiera-php
A PHP implementation of Hiera
dev-master
2015-03-30 08:35 UTC
Requires
- symfony/console: ~2.4
- symfony/yaml: ~2.6
This package is auto-updated.
Last update: 2024-11-29 04:08:58 UTC
README
What is Hiera?
According to the Hiera website:
Hiera is a key/value lookup tool for configuration data.
Hiera uses a configurable hierarchy to enable "Cascading Configuration".
It's great for infrastructure configuration (which is why it's used in Puppet), but it also applies to multi-tenancy applications.
Hiera-PHP tries to be as much of a direct port as possible, maintaining support for original configuration files, and even internal classnames and interfaces.
Usage
hiera-php can be used both as a library, and as a console-tool
Library
use Hiera\Hiera; use Hiera\Scope; use Hiera\ConfigLoader\YamlConfigLoader; $scope = new Scope(); $scope->setVariable('::environment', 'production'); $scope->setVariable('::clientcert', 'web01.dc1.example.webx'); $scope->setVariable('::country', 'nl'); $hiera = new Hiera(); $loader = new YamlConfigLoader(); $loader->load($hiera, $path_to_hiera_yaml_file); $key = 'some_configuration_key'; $answer = $hiera->lookup($key, '#default#', $scope);
Console tool
vendor/bin/hiera-php hiera:lookup some_configuration_key
Features
- Supports loading original
hiera.yaml
files - Supports pluggable backends
- Yaml backend included (supporting original configuration yaml files)
- Command line utility to perform lookups
- Embeddable as a library
- Json backend
- Database (PDO, Redis, etc) backends
- Memcached backend
- Array merge strategies
Contributions are very welcome!
License
MIT (see LICENSE.md)
Brought to you by the LinkORB Engineering team
Check out our other projects at linkorb.com/engineering.
Btw, we're hiring!