LoggerAware::logger()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 8
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 5
CRAP Score 2

Importance

Changes 2
Bugs 1 Features 0
Metric Value
c 2
b 1
f 0
dl 0
loc 8
ccs 5
cts 5
cp 1
rs 9.4286
cc 2
eloc 4
nc 2
nop 0
crap 2
1
<?php
2
3
/**
4
 * Logger Aware Trait.
5
 *
6
 * @package     craftt/xorder-php
7
 * @author      Ryan Stratton <[email protected]>
8
 * @copyright   Copyright (c) Ryan Stratton
9
 * @license     https://github.com/craftt/xorder-php-sdk/blob/master/LICENSE.md Apache 2.0
10
 * @link        https://github.com/craftt/xorder-php-sdk
11
 */
12
13
namespace XOrder;
14
15
use Psr\Log\LoggerInterface;
16
use Psr\Log\NullLogger;
17
18
trait LoggerAware
19
{
20
21
    /**
22
     * @var \Psr\Log\LoggerInterface
23
     */
24
    public $logger;
25
26
    /**
27
     * Check if the instance has a valid logger.
28
     *
29
     * @return boolean
30
     */
31 4
    public function hasLogger()
32
    {
33 4
        return ($this->logger instanceof LoggerInterface);
34
    }
35
36
    /**
37
     * Get the logger instance.
38
     *
39
     * @return \Psr\Log\LoggerInterface
40
     */
41 4
    public function logger()
42
    {
43 4
        if (!$this->hasLogger()) {
44 2
            $this->logger = new NullLogger;
45 2
        }
46
47 4
        return $this->logger;
48
    }
49
50
    /**
51
     * Sets a logger instance on the object
52
     *
53
     * @param LoggerInterface $logger
54
     * @return null
55
     */
56 2
    public function setLogger(LoggerInterface $logger)
57
    {
58 2
        $this->logger = $logger;
59 2
    }
60
}
61