ConfigurationProvider
extends AbstractConfigurationProvider
in package
implements
ConfigurationProviderInterface
A configuration provider is a function that accepts no arguments and returns a promise that is fulfilled with a {@see \Aws\ClientSideMonitoring\ConfigurationInterface} or rejected with an {@see \Aws\ClientSideMonitoring\Exception\ConfigurationException}.
use Aws\ClientSideMonitoring\ConfigurationProvider;
$provider = ConfigurationProvider::defaultProvider();
// Returns a ConfigurationInterface or throws.
$config = $provider()->wait();
Configuration providers can be composed to create configuration using conditional logic that can create different configurations in different environments. You can compose multiple providers into a single provider using ConfigurationProvider::chain. This function accepts providers as variadic arguments and returns a new function that will invoke each provider until a successful configuration is returned.
// First try an INI file at this location.
$a = ConfigurationProvider::ini(null, '/path/to/file.ini');
// Then try an INI file at this location.
$b = ConfigurationProvider::ini(null, '/path/to/other-file.ini');
// Then try loading from environment variables.
$c = ConfigurationProvider::env();
// Combine the three providers together.
$composed = ConfigurationProvider::chain($a, $b, $c);
// Returns a promise that is fulfilled with a configuration or throws.
$promise = $composed();
// Wait on the configuration to resolve.
$config = $promise->wait();
Table of Contents
Interfaces
Constants
- DEFAULT_CLIENT_ID = ''
- DEFAULT_ENABLED = false
- DEFAULT_HOST = '127.0.0.1'
- DEFAULT_PORT = 31000
- ENV_CLIENT_ID = 'AWS_CSM_CLIENT_ID'
- ENV_CONFIG_FILE = 'AWS_CONFIG_FILE'
- ENV_ENABLED = 'AWS_CSM_ENABLED'
- ENV_HOST = 'AWS_CSM_HOST'
- ENV_PORT = 'AWS_CSM_PORT'
- ENV_PROFILE = 'AWS_PROFILE'
Properties
- $cacheKey : mixed
Methods
- cache() : callable
- Wraps a config provider and saves provided configuration in an instance of Aws\CacheInterface. Forwards calls when no config found in cache and updates cache with the results.
- chain() : callable
- Creates an aggregate configuration provider that invokes the provided variadic providers one after the other until a provider returns configuration.
- defaultProvider() : callable
- Create a default config provider that first checks for environment variables, then checks for a specified profile in the environment-defined config file location (env variable is 'AWS_CONFIG_FILE', file location defaults to ~/.aws/config), then checks for the "default" profile in the environment-defined config file location, and failing those uses a default fallback set of configuration options.
- env() : callable
- Provider that creates CSM config from environment variables.
- fallback() : callable
- Fallback config options when other sources are not set.
- ini() : callable
- Config provider that creates config using a config file whose location is specified by an environment variable 'AWS_CONFIG_FILE', defaulting to ~/.aws/config if not specified
- memoize() : callable
- Wraps a config provider and caches previously provided configuration.
- unwrap() : ConfigurationInterface
- Unwraps a configuration object in whatever valid form it is in, always returning a ConfigurationInterface object.
Constants
DEFAULT_CLIENT_ID
public
mixed
DEFAULT_CLIENT_ID
= ''
DEFAULT_ENABLED
public
mixed
DEFAULT_ENABLED
= false
DEFAULT_HOST
public
mixed
DEFAULT_HOST
= '127.0.0.1'
DEFAULT_PORT
public
mixed
DEFAULT_PORT
= 31000
ENV_CLIENT_ID
public
mixed
ENV_CLIENT_ID
= 'AWS_CSM_CLIENT_ID'
ENV_CONFIG_FILE
public
mixed
ENV_CONFIG_FILE
= 'AWS_CONFIG_FILE'
ENV_ENABLED
public
mixed
ENV_ENABLED
= 'AWS_CSM_ENABLED'
ENV_HOST
public
mixed
ENV_HOST
= 'AWS_CSM_HOST'
ENV_PORT
public
mixed
ENV_PORT
= 'AWS_CSM_PORT'
ENV_PROFILE
public
mixed
ENV_PROFILE
= 'AWS_PROFILE'
Properties
$cacheKey
public
static mixed
$cacheKey
= 'aws_cached_csm_config'
Methods
cache()
Wraps a config provider and saves provided configuration in an instance of Aws\CacheInterface. Forwards calls when no config found in cache and updates cache with the results.
public
static cache(callable $provider, CacheInterface $cache[, string|null $cacheKey = null ]) : callable
Parameters
- $provider : callable
-
Configuration provider function to wrap
- $cache : CacheInterface
-
Cache to store configuration
- $cacheKey : string|null = null
-
(optional) Cache key to use
Return values
callablechain()
Creates an aggregate configuration provider that invokes the provided variadic providers one after the other until a provider returns configuration.
public
static chain() : callable
Return values
callabledefaultProvider()
Create a default config provider that first checks for environment variables, then checks for a specified profile in the environment-defined config file location (env variable is 'AWS_CONFIG_FILE', file location defaults to ~/.aws/config), then checks for the "default" profile in the environment-defined config file location, and failing those uses a default fallback set of configuration options.
public
static defaultProvider([array<string|int, mixed> $config = [] ]) : callable
This provider is automatically wrapped in a memoize function that caches previously provided config options.
Parameters
- $config : array<string|int, mixed> = []
Return values
callableenv()
Provider that creates CSM config from environment variables.
public
static env() : callable
Return values
callablefallback()
Fallback config options when other sources are not set.
public
static fallback() : callable
Return values
callableini()
Config provider that creates config using a config file whose location is specified by an environment variable 'AWS_CONFIG_FILE', defaulting to ~/.aws/config if not specified
public
static ini([string|null $profile = null ][, string|null $filename = null ]) : callable
Parameters
- $profile : string|null = null
-
Profile to use. If not specified will use the "default" profile.
- $filename : string|null = null
-
If provided, uses a custom filename rather than looking in the default directory.
Return values
callablememoize()
Wraps a config provider and caches previously provided configuration.
public
static memoize(callable $provider) : callable
Parameters
- $provider : callable
-
Config provider function to wrap.
Return values
callableunwrap()
Unwraps a configuration object in whatever valid form it is in, always returning a ConfigurationInterface object.
public
static unwrap(mixed $config) : ConfigurationInterface
Parameters
- $config : mixed