sirix / sirix-config
Utils to load, parse and work with configuration on Mezzio projects
Requires
- php: ^8.3
- cuyz/valinor: ^1.7
- laminas/laminas-servicemanager: ^3.22 || ^4.2
- laminas/laminas-stdlib: ^3.20
Requires (Dev)
- devster/ubench: ^2.1
- ergebnis/composer-normalize: ^2.39
- phpunit/phpunit: ^12.0
- psr/simple-cache: ^2.0
- roave/security-advisories: dev-master
- symfony/var-dumper: ^6.3
README
Utils to load, parse and work with configuration on Mezzio projects.
This library is based on the shlinkio/shlink-config
project, with some modifications and extensions for our specific requirements.
Installation
Install this tool using composer.
composer install sirix/sirix-config
This library is also a mezzio module which provides its own
ConfigProvider
. Add it to your configuration to get everything automatically set up.
Included utils
-
loadConfigFromGlob
: Function which expects a glob pattern and loads and merges all config files that match it. -
EnvVarLoaderProvider
: A config provider which loads the entries of the loaded config into env vars and always returns empty. Designed to be the first config provider in the pipeline. -
DottedAccessConfigAbstractFactory
: An abstract factory that lets any config param to be fetched as a service by using theconfig.foo.bar
notation. -
ValinorConfigFactory
: A PSR-11 factory that lets you map arbitrary objects from arrays, using cuyz/valinior.In order to use it, you have to register the object to map as a service, and the ValinorConfigFactory with static access using the service that returns the raw array with the data as the static method name:
<?php declare(strict_types=1); return [ MyCoolOptions::class => [ValinorConfigFactory::class, 'config.foo.options'], ];
It is useful to combine this factory with the
DottedAccessConfigAbstractFactory
.The mapping will be done with cache if a
Psr\SimpleCache\CacheInterface
service is found.