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

ChannelChangerFactory   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 67
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 7

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 5
lcom 1
cbo 7
dl 0
loc 67
ccs 34
cts 34
cp 1
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 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