LoggerTrait   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 32
Duplicated Lines 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
eloc 6
dl 0
loc 32
rs 10
c 2
b 0
f 0
wmc 3

2 Methods

Rating   Name   Duplication   Size   Complexity  
A getLogger() 0 7 2
A setLogger() 0 3 1
1
<?php
2
/**
3
 * Trait LoggerTrait|Firesphere\SearchBackend\Traits\LoggerTrait Trait to help getting and setting the logger
4
 *
5
 * @package Firesphere\Search\Backend
6
 * @author Simon `Firesphere` Erkelens; Marco `Sheepy` Hermo
7
 * @copyright Copyright (c) 2018 - now() Firesphere & Sheepy
8
 */
9
10
namespace Firesphere\SearchBackend\Traits;
11
12
use Psr\Container\NotFoundExceptionInterface;
13
use Psr\Log\LoggerInterface;
14
use SilverStripe\Core\Injector\Injector;
15
16
/**
17
 * Trait LoggerTrait
18
 *
19
 * Trait for getting and setting the logger.
20
 *
21
 * @package Firesphere\Search\Backend
22
 */
23
trait LoggerTrait
24
{
25
    /**
26
     * The logger to use
27
     *
28
     * @var LoggerInterface
29
     */
30
    protected $logger;
31
32
    /**
33
     * Get the logger
34
     *
35
     * @return LoggerInterface
36
     * @throws NotFoundExceptionInterface
37
     */
38
    public function getLogger()
39
    {
40
        if (!$this->logger) {
41
            $this->logger = Injector::inst()->get(LoggerInterface::class);
42
        }
43
44
        return $this->logger;
45
    }
46
47
    /**
48
     * Set the logger if needed
49
     *
50
     * @param LoggerInterface $logger
51
     */
52
    public function setLogger($logger): void
53
    {
54
        $this->logger = $logger;
55
    }
56
}
57