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

ChannelChangerFactory   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 67
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 7

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
wmc 5
lcom 1
cbo 7
dl 0
loc 67
ccs 0
cts 35
cp 0
rs 10
c 0
b 0
f 0

5 Methods

Rating   Name   Duplication   Size   Complexity  
A __invoke() 0 12 1
A getMainConfig() 0 6 1
A getHandlerManager() 0 12 1
A getFormatterManager() 0 11 1
A getProcessorManager() 0 11 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
    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