SerializerFactory::createSerialzer()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 15
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 8
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 15
ccs 8
cts 8
cp 1
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 7
nc 1
nop 2
crap 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