A PHP implementation of 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.
hiera-php can be used both as a library, and as a console-tool
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);
vendor/bin/hiera-php hiera:lookup some_configuration_key
- Supports loading original
- 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!
MIT (see LICENSE.md)
Check out our other projects at linkorb.com/engineering.
Btw, we're hiring!