Completed
Push — master ( 5b3b49...e44d2f )
by Westin
05:38
created

ChannelChangerFactory::getMainConfig()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 6
ccs 0
cts 3
cp 0
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 4
nc 1
nop 1
crap 2
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
    public function __invoke(ContainerInterface $container)
24
    {
25
        $config = $this->getMainConfig($container);
26
        $handlerManager = $this->getHandlerManager($container);
27
        $processorManager = $this->getProcessorManager($container);
28
29
        return new ChannelChanger(
30
            $config,
31
            $handlerManager,
32
            $processorManager
33
        );
34
    }
35
36
    public function getMainConfig(ContainerInterface $container)
37
    {
38
        $factory = new MainConfigFactory();
39
        $this->config = $factory($container);
40
        return $this->config;
41
    }
42
43
    public function getHandlerManager(ContainerInterface $container)
44
    {
45
        $config = $this->getMainConfig($container);
46
        $this->handlerManager = new HandlerManager(
47
            $config,
48
            new FormatterMapper(),
49
            $container
50
        );
51
52
        $this->handlerManager->setFormatterManager($this->getFormatterManager($container));
53
        return $this->handlerManager;
54
    }
55
56
    public function getFormatterManager(ContainerInterface $container)
57
    {
58
        $config = $this->getMainConfig($container);
59
        $this->formatterManager = new FormatterManager(
60
            $config,
61
            new FormatterMapper(),
62
            $container
63
        );
64
65
        return $this->formatterManager;
66
    }
67
68
    public function getProcessorManager(ContainerInterface $container)
69
    {
70
        $config = $this->getMainConfig($container);
71
        $this->processManager = new ProcessorManager(
72
            $config,
73
            new ProcessorMapper(),
74
            $container
75
        );
76
77
        return $this->processManager;
78
    }
79
}
80