DefaultFormNormalizer::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 2
nc 1
nop 2
dl 0
loc 4
ccs 3
cts 3
cp 1
crap 1
rs 10
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace CCT\Kong\Form\Normalizer;
6
7
use JMS\Serializer\SerializationContext;
8
use JMS\Serializer\Serializer;
9
use JMS\Serializer\SerializerInterface;
10
11
class DefaultFormNormalizer implements FormNormalizerInterface
12
{
13
    /**
14
     * @var Serializer|SerializerInterface
15
     */
16
    protected $serializer;
17
18
    /**
19
     * @var SerializationContext|null
20
     */
21
    protected $serializationContext;
22
23 37
    public function __construct(SerializerInterface $serializer, SerializationContext $context = null)
24
    {
25 37
        $this->serializer = $serializer;
26 37
        $this->serializationContext = $context;
27 37
    }
28
29
    /**
30
     * {@inheritdoc}
31
     */
32 35
    public function normalize($formData = []): array
33
    {
34 35
        if (empty($formData)) {
35 28
            return [];
36
        }
37
38 12
        if (is_object($formData)) {
39 12
            $formData = $this->serializer->toArray(
40 12
                $formData,
41 12
                $this->serializationContext
42
            );
43
        }
44
45 12
        $formParams = $this->normalizeParams($formData);
46
47 12
        return $formParams;
48
    }
49
50 12
    protected function normalizeParams(array $formData): array
51
    {
52 12
        $formParams = [];
53 12
        foreach ($formData as $key => $value) {
54 11
            if (empty($value)) {
55 5
                continue;
56
            }
57
58 11
            $formParams[$key] = (is_array($value))
59
                ? join(',', $value)
60 11
                : $value
61
            ;
62
        }
63
64 12
        return $formParams;
65
    }
66
}