YamlEncoder::supportsEncoding()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 4
rs 10
cc 1
eloc 2
nc 1
nop 1
1
<?php
2
3
4
namespace Fitbug\SymfonySerializer\YamlEncoderDecoder;
5
6
7
use Symfony\Component\Serializer\Encoder\DecoderInterface;
8
use Symfony\Component\Serializer\Encoder\EncoderInterface;
9
use Symfony\Component\Serializer\Exception\UnexpectedValueException;
10
11
class YamlEncoder implements EncoderInterface, DecoderInterface
12
{
13
    /**
14
     * @var YamlEncode
15
     */
16
    private $yamlEncode;
17
    /**
18
     * @var YamlDecode
19
     */
20
    private $yamlDecode;
21
22
    /**
23
     * YamlEncoder constructor.
24
     *
25
     * @param YamlEncode $yamlEncodeImpl
0 ignored issues
show
Documentation introduced by
Should the type for parameter $yamlEncodeImpl not be null|YamlEncode?

This check looks for @param annotations where the type inferred by our type inference engine differs from the declared type.

It makes a suggestion as to what type it considers more descriptive.

Most often this is a case of a parameter that can be null in addition to its declared types.

Loading history...
26
     * @param YamlDecode $yamlDecodeImpl
0 ignored issues
show
Documentation introduced by
Should the type for parameter $yamlDecodeImpl not be null|YamlDecode?

This check looks for @param annotations where the type inferred by our type inference engine differs from the declared type.

It makes a suggestion as to what type it considers more descriptive.

Most often this is a case of a parameter that can be null in addition to its declared types.

Loading history...
27
     */
28
    public function __construct(YamlEncode $yamlEncodeImpl = null, YamlDecode $yamlDecodeImpl = null)
29
    {
30
        $this->yamlEncode = $yamlEncodeImpl ?: new YamlEncode();
31
        $this->yamlDecode = $yamlDecodeImpl ?: new YamlDecode();
32
    }
33
34
35
    /**
36
     * Decodes a string into PHP data.
37
     *
38
     * @param string $data    Data to decode
39
     * @param string $format  Format name
40
     * @param array  $context options that decoders have access to
41
     *
42
     * The format parameter specifies which format the data is in; valid values
43
     * depend on the specific implementation. This interface only supports YAML
44
     *
45
     * @return mixed
0 ignored issues
show
Documentation introduced by
Consider making the return type a bit more specific; maybe use string|array|\stdClass.

This check looks for the generic type array as a return type and suggests a more specific type. This type is inferred from the actual code.

Loading history...
46
     *
47
     * @throws UnexpectedValueException
48
     */
49
    public function decode($data, $format, array $context = [])
50
    {
51
        return $this->yamlDecode->decode($data, $format, $context);
52
    }
53
54
    /**
55
     * Checks whether the deserializer can decode from given format.
56
     *
57
     * @param string $format format name
58
     *
59
     * @return bool
60
     */
61
    public function supportsDecoding($format)
62
    {
63
        return $this->yamlDecode->supportsDecoding($format);
64
    }
65
66
    /**
67
     * Encodes data into the given format.
68
     *
69
     * @param mixed  $data    Data to encode
70
     * @param string $format  Format name
71
     * @param array  $context options that normalizers/encoders have access to
72
     *
73
     * @return scalar
74
     *
75
     * @throws UnexpectedValueException
76
     */
77
    public function encode($data, $format, array $context = [])
78
    {
79
        return $this->yamlEncode->encode($data, $format, $context);
80
    }
81
82
    /**
83
     * Checks whether the serializer can encode to given format.
84
     *
85
     * @param string $format format name
86
     *
87
     * @return bool
88
     */
89
    public function supportsEncoding($format)
90
    {
91
        return $this->yamlEncode->supportsEncoding($format);
92
    }
93
}