Mercurial > hg > isophonics-drupal-site
view core/modules/serialization/src/Encoder/XmlEncoder.php @ 19:fa3358dc1485 tip
Add ndrum files
author | Chris Cannam |
---|---|
date | Wed, 28 Aug 2019 13:14:47 +0100 |
parents | af1871eacc83 |
children |
line wrap: on
line source
<?php namespace Drupal\serialization\Encoder; use Symfony\Component\Serializer\Encoder\EncoderInterface; use Symfony\Component\Serializer\Encoder\DecoderInterface; use Symfony\Component\Serializer\Encoder\XmlEncoder as BaseXmlEncoder; use Symfony\Component\Serializer\SerializerAwareInterface; use Symfony\Component\Serializer\SerializerAwareTrait; /** * Adds XML support for serializer. * * This acts as a wrapper class for Symfony's XmlEncoder so that it is not * implementing NormalizationAwareInterface, and can be normalized externally. * * @internal * This encoder should not be used directly. Rather, use the `serializer` * service. */ class XmlEncoder implements SerializerAwareInterface, EncoderInterface, DecoderInterface { use SerializerAwareTrait; /** * The formats that this Encoder supports. * * @var array */ protected static $format = ['xml']; /** * An instance of the Symfony XmlEncoder to perform the actual encoding. * * @var \Symfony\Component\Serializer\Encoder\XmlEncoder */ protected $baseEncoder; /** * Gets the base encoder instance. * * @return \Symfony\Component\Serializer\Encoder\XmlEncoder * The base encoder. */ public function getBaseEncoder() { if (!isset($this->baseEncoder)) { $this->baseEncoder = new BaseXmlEncoder(); $this->baseEncoder->setSerializer($this->serializer); } return $this->baseEncoder; } /** * Sets the base encoder instance. * * @param \Symfony\Component\Serializer\Encoder\XmlEncoder $encoder */ public function setBaseEncoder($encoder) { $this->baseEncoder = $encoder; } /** * {@inheritdoc} */ public function encode($data, $format, array $context = []) { return $this->getBaseEncoder()->encode($data, $format, $context); } /** * {@inheritdoc} */ public function supportsEncoding($format) { return in_array($format, static::$format); } /** * {@inheritdoc} */ public function decode($data, $format, array $context = []) { return $this->getBaseEncoder()->decode($data, $format, $context); } /** * {@inheritdoc} */ public function supportsDecoding($format) { return in_array($format, static::$format); } }