44a086d60212f611dc82755b12beacc72373cdfb
[yaffs-website] / vendor / symfony / serializer / Encoder / JsonEncoder.php
1 <?php
2
3 /*
4  * This file is part of the Symfony package.
5  *
6  * (c) Fabien Potencier <fabien@symfony.com>
7  *
8  * For the full copyright and license information, please view the LICENSE
9  * file that was distributed with this source code.
10  */
11
12 namespace Symfony\Component\Serializer\Encoder;
13
14 /**
15  * Encodes JSON data.
16  *
17  * @author Jordi Boggiano <j.boggiano@seld.be>
18  */
19 class JsonEncoder implements EncoderInterface, DecoderInterface
20 {
21     const FORMAT = 'json';
22
23     /**
24      * @var JsonEncode
25      */
26     protected $encodingImpl;
27
28     /**
29      * @var JsonDecode
30      */
31     protected $decodingImpl;
32
33     public function __construct(JsonEncode $encodingImpl = null, JsonDecode $decodingImpl = null)
34     {
35         $this->encodingImpl = $encodingImpl ?: new JsonEncode();
36         $this->decodingImpl = $decodingImpl ?: new JsonDecode(true);
37     }
38
39     /**
40      * {@inheritdoc}
41      */
42     public function encode($data, $format, array $context = array())
43     {
44         return $this->encodingImpl->encode($data, self::FORMAT, $context);
45     }
46
47     /**
48      * {@inheritdoc}
49      */
50     public function decode($data, $format, array $context = array())
51     {
52         return $this->decodingImpl->decode($data, self::FORMAT, $context);
53     }
54
55     /**
56      * {@inheritdoc}
57      */
58     public function supportsEncoding($format)
59     {
60         return self::FORMAT === $format;
61     }
62
63     /**
64      * {@inheritdoc}
65      */
66     public function supportsDecoding($format)
67     {
68         return self::FORMAT === $format;
69     }
70 }