Seditio Source
Root |
./othercms/dle15_0/upload/engine/classes/composer/vendor/aws/aws-sdk-php/src/Endpoint/PatternEndpointProvider.php
<?php
namespace Aws\Endpoint;

/**
 * Provides endpoints based on an endpoint pattern configuration array.
 */
class PatternEndpointProvider
{
   
/** @var array */
   
private $patterns;

   
/**
     * @param array $patterns Hash of endpoint patterns mapping to endpoint
     *                        configurations.
     */
   
public function __construct(array $patterns)
    {
       
$this->patterns = $patterns;
    }

    public function
__invoke(array $args = [])
    {
       
$service = isset($args['service']) ? $args['service'] : '';
       
$region = isset($args['region']) ? $args['region'] : '';
       
$keys = ["{$region}/{$service}", "{$region}/*", "*/{$service}", "*/*"];

        foreach (
$keys as $key) {
            if (isset(
$this->patterns[$key])) {
                return
$this->expand(
                   
$this->patterns[$key],
                    isset(
$args['scheme']) ? $args['scheme'] : 'https',
                   
$service,
                   
$region
               
);
            }
        }

        return
null;
    }

    private function
expand(array $config, $scheme, $service, $region)
    {
       
$config['endpoint'] = $scheme . '://'
           
. strtr($config['endpoint'], [
               
'{service}' => $service,
               
'{region}'  => $region
           
]);

        return
$config;
    }
}