AutorÃa | Ultima modificación | Ver Log |
<?phpnamespace Aws\Api\Parser;use Aws\Api\DateTimeResult;use Aws\Api\Shape;use Psr\Http\Message\ResponseInterface;trait MetadataParserTrait{/*** Extract a single header from the response into the result.*/protected function extractHeader($name,Shape $shape,ResponseInterface $response,&$result) {$value = $response->getHeaderLine($shape['locationName'] ?: $name);switch ($shape->getType()) {case 'float':case 'double':$value = (float) $value;break;case 'long':$value = (int) $value;break;case 'boolean':$value = filter_var($value, FILTER_VALIDATE_BOOLEAN);break;case 'blob':$value = base64_decode($value);break;case 'timestamp':try {$value = DateTimeResult::fromTimestamp($value,!empty($shape['timestampFormat']) ? $shape['timestampFormat'] : null);break;} catch (\Exception $e) {// If the value cannot be parsed, then do not add it to the// output structure.return;}case 'string':if ($shape['jsonvalue']) {$value = $this->parseJson(base64_decode($value), $response);}break;}$result[$name] = $value;}/*** Extract a map of headers with an optional prefix from the response.*/protected function extractHeaders($name,Shape $shape,ResponseInterface $response,&$result) {// Check if the headers are prefixed by a location name$result[$name] = [];$prefix = $shape['locationName'];$prefixLen = strlen($prefix);foreach ($response->getHeaders() as $k => $values) {if (!$prefixLen) {$result[$name][$k] = implode(', ', $values);} elseif (stripos($k, $prefix) === 0) {$result[$name][substr($k, $prefixLen)] = implode(', ', $values);}}}/*** Places the status code of the response into the result array.*/protected function extractStatus($name,ResponseInterface $response,array &$result) {$result[$name] = (int) $response->getStatusCode();}}