Completed
Push — master ( 03d74f...6e5fe7 )
by Westin
03:43 queued 01:57
created

ChannelChangerFactory::getMainConfig()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 6
ccs 4
cts 4
cp 1
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 4
nc 1
nop 1
crap 1
1
<?php
2
3
namespace WShafer\PSR11MonoLog;
4
5
use Psr\Container\ContainerInterface;
6
use WShafer\PSR11MonoLog\Config\MainConfigFactory;
7
use WShafer\PSR11MonoLog\Formatter\FormatterMapper;
8
use WShafer\PSR11MonoLog\Processor\ProcessorMapper;
9
use WShafer\PSR11MonoLog\Service\FormatterManager;
10
use WShafer\PSR11MonoLog\Service\HandlerManager;
11
use WShafer\PSR11MonoLog\Service\ProcessorManager;
12
13
class ChannelChangerFactory
14
{
15
    protected $config = null;
16
17
    protected $handlerManager = null;
18
19
    protected $processManager = null;
20
21
    protected $formatterManager = null;
22
23 1
    public function __invoke(ContainerInterface $container)
24
    {
25 1
        $config = $this->getMainConfig($container);
26 1
        $handlerManager = $this->getHandlerManager($container);
27 1
        $processorManager = $this->getProcessorManager($container);
28
29 1
        return new ChannelChanger(
30 1
            $config,
31 1
            $handlerManager,
32 1
            $processorManager
33
        );
34
    }
35
36 5
    public function getMainConfig(ContainerInterface $container)
37
    {
38 5
        $factory = new MainConfigFactory();
39 5
        $this->config = $factory($container);
40 5
        return $this->config;
41
    }
42
43 2
    public function getHandlerManager(ContainerInterface $container)
44
    {
45 2
        $config = $this->getMainConfig($container);
46 2
        $this->handlerManager = new HandlerManager(
47 2
            $config,
48 2
            new FormatterMapper(),
49 2
            $container
50
        );
51
52 2
        $this->handlerManager->setFormatterManager($this->getFormatterManager($container));
53 2
        return $this->handlerManager;
54
    }
55
56 3
    public function getFormatterManager(ContainerInterface $container)
57
    {
58 3
        $config = $this->getMainConfig($container);
59 3
        $this->formatterManager = new FormatterManager(
60 3
            $config,
61 3
            new FormatterMapper(),
62 3
            $container
63
        );
64
65 3
        return $this->formatterManager;
66
    }
67
68 2
    public function getProcessorManager(ContainerInterface $container)
69
    {
70 2
        $config = $this->getMainConfig($container);
71 2
        $this->processManager = new ProcessorManager(
72 2
            $config,
73 2
            new ProcessorMapper(),
74 2
            $container
75
        );
76
77 2
        return $this->processManager;
78
    }
79
}
80