Mercurial > hg > isophonics-drupal-site
view vendor/symfony/serializer/Encoder/YamlEncoder.php @ 12:7a779792577d
Update Drupal core to v8.4.5 (via Composer)
author | Chris Cannam |
---|---|
date | Fri, 23 Feb 2018 15:52:07 +0000 |
parents | 4c8ae668cc8c |
children | 1fec387a4317 |
line wrap: on
line source
<?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Serializer\Encoder; use Symfony\Component\Yaml\Dumper; use Symfony\Component\Yaml\Parser; /** * Encodes YAML data. * * @author Kévin Dunglas <dunglas@gmail.com> */ class YamlEncoder implements EncoderInterface, DecoderInterface { const FORMAT = 'yaml'; private $dumper; private $parser; private $defaultContext = array('yaml_inline' => 0, 'yaml_indent' => 0, 'yaml_flags' => 0); public function __construct(Dumper $dumper = null, Parser $parser = null, array $defaultContext = array()) { $this->dumper = $dumper ?: new Dumper(); $this->parser = $parser ?: new Parser(); $this->defaultContext = array_merge($this->defaultContext, $defaultContext); } /** * {@inheritdoc} */ public function encode($data, $format, array $context = array()) { $context = array_merge($this->defaultContext, $context); return $this->dumper->dump($data, $context['yaml_inline'], $context['yaml_indent'], $context['yaml_flags']); } /** * {@inheritdoc} */ public function supportsEncoding($format) { return self::FORMAT === $format; } /** * {@inheritdoc} */ public function decode($data, $format, array $context = array()) { $context = array_merge($this->defaultContext, $context); return $this->parser->parse($data, $context['yaml_flags']); } /** * {@inheritdoc} */ public function supportsDecoding($format) { return self::FORMAT === $format; } }