BuilderService::__invoke()   F
last analyzed

Complexity

Conditions 11
Paths 1024

Size

Total Lines 47
Code Lines 24

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 132

Importance

Changes 1
Bugs 0 Features 1
Metric Value
c 1
b 0
f 1
dl 0
loc 47
ccs 0
cts 34
cp 0
rs 3.1764
cc 11
eloc 24
nc 1024
nop 1
crap 132

How to fix   Complexity   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

1
<?php
2
3
namespace JDesrosiers\Silex\Provider;
4
5
use JMS\Serializer\SerializerBuilder;
6
use Pimple\Container;
7
8
class BuilderService
9
{
10
    public function __invoke(Container $app) {
11
        $serializerBuilder = SerializerBuilder::create();
12
13
        if ($app->offsetExists("debug")) {
14
            $serializerBuilder->setDebug($app["debug"]);
15
        }
16
17
        if ($app->offsetExists("serializer.annotationReader")) {
18
            $serializerBuilder->setAnnotationReader($app["serializer.annotationReader"]);
19
        }
20
21
        if ($app->offsetExists("serializer.cacheDir")) {
22
            $serializerBuilder->setCacheDir($app["serializer.cacheDir"]);
23
        }
24
25
        if ($app->offsetExists("serializer.configureHandlers")) {
26
            $serializerBuilder->configureHandlers($app["serializer.configureHandlers"]);
27
        }
28
29
        if ($app->offsetExists("serializer.configureListeners")) {
30
            $serializerBuilder->configureListeners($app["serializer.configureListeners"]);
31
        }
32
33
        if ($app->offsetExists("serializer.objectConstructor")) {
34
            $serializerBuilder->setObjectConstructor($app["serializer.objectConstructor"]);
35
        }
36
37
        $serializerBuilder->setPropertyNamingStrategy($app["serializer.propertyNamingStrategy"]);
38
39
        if ($app->offsetExists("serializer.serializationVisitors")) {
40
            $this->setSerializationVisitors($app, $serializerBuilder);
41
        }
42
43
        if ($app->offsetExists("serializer.deserializationVisitors")) {
44
            $this->setDeserializationVisitors($app, $serializerBuilder);
45
        }
46
47
        if ($app->offsetExists("serializer.includeInterfaceMetadata")) {
48
            $serializerBuilder->includeInterfaceMetadata($app["serializer.includeInterfaceMetadata"]);
49
        }
50
51
        if ($app->offsetExists("serializer.metadataDirs")) {
52
            $serializerBuilder->setMetadataDirs($app["serializer.metadataDirs"]);
53
        }
54
55
        return $serializerBuilder;
56
    }
57
58
    /**
59
     * Override default serialization vistors
60
     *
61
     * @param Container $app
62
     * @param SerializerBuilder $serializerBuilder
63
     */
64
    protected function setSerializationVisitors(Container $app, SerializerBuilder $serializerBuilder)
65
    {
66
        $serializerBuilder->addDefaultSerializationVisitors();
67
68
        foreach ($app["serializer.serializationVisitors"] as $format => $visitor) {
69
            $serializerBuilder->setSerializationVisitor($format, $visitor);
70
        }
71
    }
72
73
    /**
74
     * Override default deserialization visitors
75
     *
76
     * @param Container $app
77
     * @param SerializerBuilder $serializerBuilder
78
     */
79
    protected function setDeserializationVisitors(Container $app, SerializerBuilder $serializerBuilder)
80
    {
81
        $serializerBuilder->addDefaultDeserializationVisitors();
82
83
        foreach ($app["serializer.deserializationVisitors"] as $format => $visitor) {
84
            $serializerBuilder->setDeserializationVisitor($format, $visitor);
85
        }
86
    }
87
}
88