SerializerFactory   A
last analyzed

Complexity

Total Complexity 1

Size/Duplication

Total Lines 23
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 7

Test Coverage

Coverage 100%

Importance

Changes 2
Bugs 0 Features 1
Metric Value
wmc 1
c 2
b 0
f 1
lcom 0
cbo 7
dl 0
loc 23
ccs 12
cts 12
cp 1
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A create() 0 17 1
1
<?php
2
namespace Wonnova\SDK\Serializer;
3
4
use Doctrine\Common\Annotations\AnnotationRegistry;
5
use JMS\Serializer\Handler\HandlerRegistry;
6
use JMS\Serializer\Naming\IdenticalPropertyNamingStrategy;
7
use JMS\Serializer\Naming\SerializedNameAnnotationStrategy;
8
use JMS\Serializer\SerializerBuilder;
9
10
/**
11
 * Class SerializerFactory
12
 * @author Wonnova
13
 * @link http://www.wonnova.com
14
 */
15
class SerializerFactory
16
{
17
    /**
18
     * @return \JMS\Serializer\Serializer
19
     */
20 43
    public static function create()
21
    {
22
        // This makes annotations autoloading work with existing annotation classes
23 43
        AnnotationRegistry::registerLoader('class_exists');
24
25 43
        $propertyNamingStrategy = new SerializedNameAnnotationStrategy(new IdenticalPropertyNamingStrategy());
26
27 43
        return SerializerBuilder::create()
28 43
            ->setPropertyNamingStrategy($propertyNamingStrategy)
29 43
            ->addDefaultDeserializationVisitors()
30 43
            ->addDefaultSerializationVisitors()
31 43
            ->setDeserializationVisitor('array', new ArrayDeserializationVisitor($propertyNamingStrategy))
32 43
            ->configureHandlers(function (HandlerRegistry $registry) {
33 43
                $registry->registerSubscribingHandler(new DateTimeHandler());
34 43
            })
35 43
            ->build();
36
    }
37
}
38