123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- <?php
- namespace Aws\Api\Serializer;
- use Aws\Api\StructureShape;
- use Aws\Api\Service;
- /**
- * @internal
- */
- class RestXmlSerializer extends RestSerializer
- {
- /** @var XmlBody */
- private $xmlBody;
- /**
- * @param Service $api Service API description
- * @param string $endpoint Endpoint to connect to
- * @param XmlBody $xmlBody Optional XML formatter to use
- */
- public function __construct(
- Service $api,
- $endpoint,
- XmlBody $xmlBody = null
- ) {
- parent::__construct($api, $endpoint);
- $this->xmlBody = $xmlBody ?: new XmlBody($api);
- }
- protected function payload(StructureShape $member, array $value, array &$opts)
- {
- $opts['headers']['Content-Type'] = 'application/xml';
- $opts['body'] = $this->getXmlBody($member, $value);
- }
- /**
- * @param StructureShape $member
- * @param array $value
- * @return string
- */
- private function getXmlBody(StructureShape $member, array $value)
- {
- $xmlBody = (string)$this->xmlBody->build($member, $value);
- $xmlBody = str_replace("'", "'", $xmlBody);
- $xmlBody = str_replace('\r', " ", $xmlBody);
- $xmlBody = str_replace('\n', " ", $xmlBody);
- return $xmlBody;
- }
- }
|