Logging   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 41
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Test Coverage

Coverage 0%

Importance

Changes 1
Bugs 0 Features 1
Metric Value
dl 0
loc 41
ccs 0
cts 14
cp 0
rs 10
c 1
b 0
f 1
wmc 6
lcom 0
cbo 1

4 Methods

Rating   Name   Duplication   Size   Complexity  
A setGlobalLogger() 0 4 1
A getGlobalLogger() 0 8 2
A getLogger() 0 8 2
A setLogger() 0 4 1
1
<?php
2
/**
3
 * Nucleus - XMPP Library for PHP
4
 *
5
 * Copyright (C) 2016, Some rights reserved.
6
 *
7
 * @author Kacper "Kadet" Donat <[email protected]>
8
 *
9
 * Contact with author:
10
 * Xmpp: [email protected]
11
 * E-mail: [email protected]
12
 *
13
 * From Kadet with love.
14
 */
15
16
namespace Kadet\Xmpp\Utils;
17
18
use Psr\Log\LoggerInterface;
19
use Psr\Log\NullLogger;
20
21
trait Logging
22
{
23
    private static $global = null;
24
25
    /** @var LoggerInterface */
26
    private $_logger = null;
27
28
    public static function setGlobalLogger(LoggerInterface $logger)
29
    {
30
        self::$global = $logger;
31
    }
32
33
    /**
34
     * @return LoggerInterface
35
     */
36
    public function getLogger() : LoggerInterface
37
    {
38
        if ($this->_logger === null) {
39
            $this->_logger = self::getGlobalLogger();
40
        }
41
42
        return $this->_logger;
43
    }
44
45
    public function setLogger(LoggerInterface $logger)
46
    {
47
        $this->_logger = $logger;
48
    }
49
50
    /**
51
     * @return LoggerInterface
52
     */
53
    public static function getGlobalLogger()
54
    {
55
        if (self::$global === null) {
56
            self::$global = new NullLogger();
57
        }
58
59
        return self::$global;
60
    }
61
}
62