TransformerFactory   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 35
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 3

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 3
lcom 1
cbo 3
dl 0
loc 35
ccs 14
cts 14
cp 1
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 5 1
A create() 0 16 2
1
<?php
2
3
declare(strict_types=1);
4
5
/*
6
 * This file is part of Symplify.
7
 * Copyright (c) 2016 Tomas Votruba (http://tomasvotruba.cz).
8
 */
9
10
namespace Symplify\NetteAdapterForSymfonyBundles\Transformer\DI;
11
12
use Nette\Configurator;
13
use Nette\DI\Container;
14
use Nette\DI\ContainerBuilder;
15
use Symplify\NetteAdapterForSymfonyBundles\Transformer\ArgumentsTransformer;
16
17
final class TransformerFactory
18
{
19
    /**
20
     * @var ContainerBuilder
21
     */
22
    private $containerBuilder;
23
24
    /**
25
     * @var string
26
     */
27
    private $tempDir;
28
29 3
    public function __construct(ContainerBuilder $containerBuilder, string $tempDir)
30
    {
31 3
        $this->containerBuilder = $containerBuilder;
32 3
        $this->tempDir = $tempDir;
33 3
    }
34
35 3
    public function create() : Container
36
    {
37 3
        $configurator = new Configurator();
38 3
        $configurator->addConfig(__DIR__ . '/services.neon');
39 3
        $configurator->setTempDirectory($this->tempDir);
40 3
        if (class_exists('Nette\Bridges\ApplicationDI\ApplicationExtension')) {
41 3
            $configurator->addConfig(__DIR__ . '/setup.neon');
42
        }
43 3
        $container = $configurator->createContainer();
44
45
        /** @var ArgumentsTransformer $argumentsTransformer */
46 3
        $argumentsTransformer = $container->getByType(ArgumentsTransformer::class);
47 3
        $argumentsTransformer->setContainerBuilder($this->containerBuilder);
48
49 3
        return $container;
50
    }
51
}
52