Passed
Push — travis-php74 ( e33f92...3a6a6e )
by Sam
07:33
created

LoggerState::tearDown()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 2
Code Lines 0

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 0
nc 1
nop 1
dl 0
loc 2
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace SilverStripe\Dev\State;
4
5
use Monolog\Handler\NullHandler;
6
use Monolog\Logger;
7
use Psr\Log\LoggerInterface;
8
use SilverStripe\Core\Injector\Injector;
9
use SilverStripe\Dev\SapphireTest;
10
11
/**
12
 * Disables any user configured loggers by pushing a NullHandler during PHPUnit tests.
13
 *
14
 * This is designed specifically for Monolog. If using another PSR-3 compatible logging package, this will
15
 * not do anything.
16
 */
17
class LoggerState implements TestState
18
{
19
    public function setUp(SapphireTest $test)
20
    {
21
        /** @var Logger $userLogger */
22
        $userLogger = Injector::inst()->get(LoggerInterface::class);
23
        if ($userLogger && $userLogger instanceof Logger) {
0 ignored issues
show
introduced by
$userLogger is always a sub-type of Monolog\Logger.
Loading history...
24
            $userLogger->setHandlers([new NullHandler()]);
25
        }
26
    }
27
28
    public function tearDown(SapphireTest $test)
29
    {
30
        // noop
31
    }
32
33
    public function setUpOnce($class)
34
    {
35
        // noop
36
    }
37
38
    public function tearDownOnce($class)
39
    {
40
        // noop
41
    }
42
}
43