ConfigurationProvider
extends AbstractConfigurationProvider
in package
implements
ConfigurationProviderInterface
A configuration provider is a function that returns a promise that is fulfilled with a {@see \Aws\EndpointDiscovery\ConfigurationInterface} or rejected with an {@see \Aws\EndpointDiscovery\Exception\ConfigurationException}.
use Aws\EndpointDiscovery\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_CACHE_LIMIT = 1000
- DEFAULT_ENABLED = false
- ENV_CONFIG_FILE = 'AWS_CONFIG_FILE'
- ENV_ENABLED = 'AWS_ENDPOINT_DISCOVERY_ENABLED'
- ENV_ENABLED_ALT = 'AWS_ENABLE_ENDPOINT_DISCOVERY'
- 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 config from environment variables.
- fallback() : callable
- Fallback config options when other sources are not set. Will check the service model for any endpoint discovery required operations, and enable endpoint discovery in that case. If no required operations found, will use the class default values.
- 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_CACHE_LIMIT
public
mixed
DEFAULT_CACHE_LIMIT
= 1000
DEFAULT_ENABLED
public
mixed
DEFAULT_ENABLED
= false
ENV_CONFIG_FILE
public
mixed
ENV_CONFIG_FILE
= 'AWS_CONFIG_FILE'
ENV_ENABLED
public
mixed
ENV_ENABLED
= 'AWS_ENDPOINT_DISCOVERY_ENABLED'
ENV_ENABLED_ALT
public
mixed
ENV_ENABLED_ALT
= 'AWS_ENABLE_ENDPOINT_DISCOVERY'
ENV_PROFILE
public
mixed
ENV_PROFILE
= 'AWS_PROFILE'
Properties
$cacheKey
public
static mixed
$cacheKey
= 'aws_cached_endpoint_discovery_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 config from environment variables.
public
static env([ $cacheLimit = self::DEFAULT_CACHE_LIMIT ]) : callable
Parameters
Return values
callablefallback()
Fallback config options when other sources are not set. Will check the service model for any endpoint discovery required operations, and enable endpoint discovery in that case. If no required operations found, will use the class default values.
public
static fallback([array<string|int, mixed> $config = [] ]) : callable
Parameters
- $config : array<string|int, mixed> = []
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 ][, int $cacheLimit = self::DEFAULT_CACHE_LIMIT ]) : 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.
- $cacheLimit : int = self::DEFAULT_CACHE_LIMIT
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