Passed
Branch master (90dd8a)
by Dominik
02:30
created

MonologServiceProvider   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 90
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 6
c 0
b 0
f 0
lcom 1
cbo 4
dl 0
loc 90
ccs 34
cts 34
cp 1
rs 10

6 Methods

Rating   Name   Duplication   Size   Complexity  
A register() 0 12 1
A getLoggerServiceDefinition() 0 6 1
A getMonologServiceDefinition() 0 9 1
A getMonologFormatterServiceDefinition() 0 6 1
A getMonologHandlersServiceDefinition() 0 6 1
A getMonologDefaultHandlerServiceDefinition() 0 15 1
1
<?php
2
3
declare(strict_types=1);
4
5
/*
6
 * (c) Fabien Potencier <[email protected]> (https://github.com/silexphp/Silex-Providers)
7
 */
8
9
namespace Chubbyphp\ServiceProvider;
10
11
use Monolog\Formatter\LineFormatter;
12
use Monolog\Handler\GroupHandler;
13
use Monolog\Handler\StreamHandler;
14
use Monolog\Logger;
15
use Pimple\Container;
16
use Psr\Log\LogLevel;
17
18
final class MonologServiceProvider
19
{
20
    /**
21
     * @param Container $container
22
     */
23 1
    public function register(Container $container)
24
    {
25 1
        $container['logger'] = $this->getLoggerServiceDefinition($container);
26 1
        $container['monolog'] = $this->getMonologServiceDefinition($container);
27 1
        $container['monolog.formatter'] = $this->getMonologFormatterServiceDefinition($container);
28 1
        $container['monolog.default_handler'] = $this->getMonologDefaultHandlerServiceDefinition($container);
29 1
        $container['monolog.handlers'] = $this->getMonologHandlersServiceDefinition($container);
30 1
        $container['monolog.level'] = LogLevel::DEBUG;
31 1
        $container['monolog.name'] = 'app';
32 1
        $container['monolog.bubble'] = true;
33 1
        $container['monolog.permission'] = null;
34 1
    }
35
36
    /**
37
     * @param Container $container
38
     *
39
     * @return \Closure
40
     */
41
    private function getLoggerServiceDefinition(Container $container): \Closure
42
    {
43 1
        return function () use ($container) {
44 1
            return $container['monolog'];
45 1
        };
46
    }
47
48
    /**
49
     * @param Container $container
50
     *
51
     * @return \Closure
52
     */
53
    private function getMonologServiceDefinition(Container $container): \Closure
0 ignored issues
show
Unused Code introduced by
The parameter $container is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
54
    {
55 1
        return function ($container) {
56 1
            $log = new Logger($container['monolog.name']);
57 1
            $log->pushHandler(new GroupHandler($container['monolog.handlers']));
58
59 1
            return $log;
60 1
        };
61
    }
62
63
    /**
64
     * @param Container $container
65
     *
66
     * @return \Closure
67
     */
68
    private function getMonologFormatterServiceDefinition(Container $container): \Closure
0 ignored issues
show
Unused Code introduced by
The parameter $container is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
69
    {
70 1
        return function () {
71 1
            return new LineFormatter();
72 1
        };
73
    }
74
75
    /**
76
     * @param Container $container
77
     *
78
     * @return \Closure
79
     */
80
    private function getMonologHandlersServiceDefinition(Container $container): \Closure
81
    {
82 1
        return function () use ($container) {
83 1
            return [$container['monolog.default_handler']];
84 1
        };
85
    }
86
87
    /**
88
     * @param Container $container
89
     *
90
     * @return \Closure
91
     */
92
    private function getMonologDefaultHandlerServiceDefinition(Container $container): \Closure
93
    {
94 1
        return function () use ($container) {
95 1
            $handler = new StreamHandler(
96 1
                $container['monolog.logfile'],
97 1
                $container['monolog.level'],
98 1
                $container['monolog.bubble'],
99 1
                $container['monolog.permission']
100
            );
101
102 1
            $handler->setFormatter($container['monolog.formatter']);
103
104 1
            return $handler;
105 1
        };
106
    }
107
}
108