Class ConfigurationProvider
- Aws\AbstractConfigurationProvider
-
Aws\EndpointDiscovery\ConfigurationProvider implements Aws\ConfigurationProviderInterface
- Namespace: Aws\EndpointDiscovery
- Located at EndpointDiscovery/ConfigurationProvider.php
A configuration provider is a function that returns a promise that is
fulfilled with a Aws\EndpointDiscovery\ConfigurationInterface
or rejected with an 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 Aws\EndpointDiscovery\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();
Methods Summary
-
static
defaultProvider ( array $config = [] )
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.
-
static
env ( $cacheLimit = self::DEFAULT_CACHE_LIMIT )
Provider that creates config from environment variables.
-
static
fallback ( array $config = [] )
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.
-
static
ini ( string|null $profile = null, string|null $filename = null, int $cacheLimit = self::DEFAULT_CACHE_LIMIT )
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
-
static
unwrap ( mixed $config )
Unwraps a configuration object in whatever valid form it is in, always returning a ConfigurationInterface object.
Methods inherited from Aws\AbstractConfigurationProvider
Methods Details
static callable defaultProvider ( array $config = [] )
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.
This provider is automatically wrapped in a memoize function that caches previously provided config options.
Parameters
array | $config = [] |
Returns
callable |
Implementation of
static callable env ( $cacheLimit = self::DEFAULT_CACHE_LIMIT )
Provider that creates config from environment variables.
Parameters
$cacheLimit = self::DEFAULT_CACHE_LIMIT |
Returns
callable |
static callable fallback ( array $config = [] )
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.
Parameters
array | $config = [] |
Returns
callable |
static callable ini ( string|null $profile = null, string|null $filename = null, integer $cacheLimit = self::DEFAULT_CACHE_LIMIT )
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
Parameters
string|null | $profile = null | Profile to use. If not specified will use the "default" profile. |
string|null | $filename = null | If provided, uses a custom filename rather than looking in the default directory. |
integer | $cacheLimit = self::DEFAULT_CACHE_LIMIT |
Returns
callable |
static
Aws\EndpointDiscovery\ConfigurationInterface
unwrap (
mixed
$config
)
Unwraps a configuration object in whatever valid form it is in, always returning a ConfigurationInterface object.
Parameters
mixed | $config |
Returns
Aws\EndpointDiscovery\ConfigurationInterface |
Exceptions
InvalidArgumentException |
Constants summary
boolean |
DEFAULT_ENABLED
|
#
false
|
integer |
DEFAULT_CACHE_LIMIT
|
#
1000
|
string |
ENV_ENABLED
|
#
'AWS_ENDPOINT_DISCOVERY_ENABLED'
|
string |
ENV_ENABLED_ALT
|
#
'AWS_ENABLE_ENDPOINT_DISCOVERY'
|