AutorÃa | Ultima modificación | Ver Log |
<?phpnamespace 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;}}