PluginProbe ʕ •ᴥ•ʔ
Transferito: WP Migration / trunk
Transferito: WP Migration vtrunk
trunk 11.4.0 12.0.0 13.1.0 14.0.0 14.0.11 14.0.7 14.1.0 14.1.1 14.1.2 14.1.3 14.1.4
transferito / vendor / aws / aws-sdk-php / src / Endpoint / PatternEndpointProvider.php
transferito / vendor / aws / aws-sdk-php / src / Endpoint Last commit date
UseDualstackEndpoint 11 months ago UseFipsEndpoint 11 months ago EndpointProvider.php 11 months ago Partition.php 11 months ago PartitionEndpointProvider.php 11 months ago PartitionInterface.php 11 months ago PatternEndpointProvider.php 11 months ago
PatternEndpointProvider.php
52 lines
1 <?php
2 namespace Aws\Endpoint;
3
4 /**
5 * Provides endpoints based on an endpoint pattern configuration array.
6 */
7 class PatternEndpointProvider
8 {
9 /** @var array */
10 private $patterns;
11
12 /**
13 * @param array $patterns Hash of endpoint patterns mapping to endpoint
14 * configurations.
15 */
16 public function __construct(array $patterns)
17 {
18 $this->patterns = $patterns;
19 }
20
21 public function __invoke(array $args = [])
22 {
23 $service = isset($args['service']) ? $args['service'] : '';
24 $region = isset($args['region']) ? $args['region'] : '';
25 $keys = ["{$region}/{$service}", "{$region}/*", "*/{$service}", "*/*"];
26
27 foreach ($keys as $key) {
28 if (isset($this->patterns[$key])) {
29 return $this->expand(
30 $this->patterns[$key],
31 isset($args['scheme']) ? $args['scheme'] : 'https',
32 $service,
33 $region
34 );
35 }
36 }
37
38 return null;
39 }
40
41 private function expand(array $config, $scheme, $service, $region)
42 {
43 $config['endpoint'] = $scheme . '://'
44 . strtr($config['endpoint'], [
45 '{service}' => $service,
46 '{region}' => $region
47 ]);
48
49 return $config;
50 }
51 }
52