SerializerFactory   A
last analyzed

Complexity

Total Complexity 1

Size/Duplication

Total Lines 17
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 1
dl 0
loc 17
ccs 8
cts 8
cp 1
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A createSerialzer() 0 15 1
1
<?php
2
3
namespace Vox\Serializer\Factory;
4
5
use Metadata\MetadataFactoryInterface;
6
use Symfony\Component\Serializer\Encoder\JsonEncoder;
7
use Symfony\Component\Serializer\Encoder\XmlEncoder;
8
use Symfony\Component\Serializer\Normalizer\DateTimeNormalizer;
9
use Symfony\Component\Serializer\Serializer;
10
use Symfony\Component\Serializer\SerializerInterface;
11
use Vox\Data\ObjectHydrator;
12
use Vox\Serializer\Denormalizer;
13
use Vox\Serializer\Normalizer;
14
use Vox\Serializer\ObjectNormalizer;
15
16
class SerializerFactory
17
{
18 9
    public function createSerialzer(
19
        MetadataFactoryInterface $metadataFactory,
20
        string $dateFormat = 'Y-m-d H:i:s'
21
    ): SerializerInterface {
22 9
        return new Serializer(
23
            [
24 9
                new ObjectNormalizer(
25 9
                    new Normalizer($metadataFactory),
26 9
                    new Denormalizer(new ObjectHydrator($metadataFactory))
27
                ),
28 9
                new DateTimeNormalizer($dateFormat)
29
            ], 
30
            [
31 9
                new JsonEncoder(),
32 9
                new XmlEncoder()
33
            ]
34
        );
35
    }
36
}
37