DefaultFormNormalizer   A
last analyzed

Complexity

Total Complexity 8

Size/Duplication

Total Lines 54
Duplicated Lines 0 %

Test Coverage

Coverage 95.45%

Importance

Changes 0
Metric Value
dl 0
loc 54
ccs 21
cts 22
cp 0.9545
rs 10
c 0
b 0
f 0
wmc 8

3 Methods

Rating   Name   Duplication   Size   Complexity  
A normalize() 0 16 3
A normalizeParams() 0 15 4
A __construct() 0 4 1
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
}