SerializerFactory::__invoke()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 18
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 11
CRAP Score 2.0145

Importance

Changes 0
Metric Value
cc 2
eloc 11
nc 2
nop 0
dl 0
loc 18
ccs 11
cts 13
cp 0.8462
crap 2.0145
rs 9.9
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace VasilDakov\Econt\Serializer;
6
7
use JMS\Serializer;
8
use JMS\Serializer\SerializationContext;
9
use JMS\Serializer\SerializerInterface;
10
use VasilDakov\Econt\Exception\ServiceNotCreatedException;
11
12
final class SerializerFactory
13
{
14
    /**
15
     * @return SerializerInterface
16
     */
17 28
    public function __invoke(): SerializerInterface
18
    {
19
        try {
20 28
            return Serializer\SerializerBuilder::create()
21 28
                ->setPropertyNamingStrategy(
22 28
                    new Serializer\Naming\SerializedNameAnnotationStrategy(
23 28
                        new Serializer\Naming\IdenticalPropertyNamingStrategy()
24 28
                    )
25 28
                )
26 28
                ->setSerializationContextFactory(function () {
27
                    return SerializationContext::create()
28
                        ->setSerializeNull(true);
29 28
                })
30 28
                ->build()
31 28
                ;
32
            // @codeCoverageIgnoreStart
33
        } catch (\Throwable $e) {
34
            throw new ServiceNotCreatedException();
35
        }
36
        // @codeCoverageIgnoreEnd
37
    }
38
}
39