shlinkio/shlink-config

Utils to load, parse and work with configuration on Shlink project

v3.0.0 2024-02-17 09:45 UTC

This package is auto-updated.

Last update: 2024-04-19 22:46:41 UTC


README

Build Status Code Coverage Latest Stable Version License Paypal donate

Utils to load, parse and work with configuration on Shlink project.

Installation

Install this tool using composer.

composer install shlinkio/shlink-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 the config.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.