Passed
Pull Request — master (#43)
by Arman
03:54
created

MessageLogger::report()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 9
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 3
eloc 7
nc 3
nop 3
dl 0
loc 9
rs 10
c 1
b 0
f 0
1
<?php
2
3
/**
4
 * Quantum PHP Framework
5
 *
6
 * An open source software development framework for PHP
7
 *
8
 * @package Quantum
9
 * @author Arman Ag. <[email protected]>
10
 * @copyright Copyright (c) 2018 Softberg LLC (https://softberg.org)
11
 * @link http://quantum.softberg.org/
12
 * @since 2.5.0
13
 */
14
15
namespace Quantum\Logger;
16
17
use Symfony\Component\VarDumper\Cloner\VarCloner;
18
use Symfony\Component\VarDumper\Dumper\HtmlDumper;
19
use Symfony\Component\VarDumper\Dumper\CliDumper;
20
use Quantum\Contracts\ReportableInterface;
21
use Quantum\Debugger\Debugger;
22
23
/**
24
 * Class MessageLogger
25
 * @package Quantum\Logger
26
 */
27
class MessageLogger implements ReportableInterface
28
{
29
30
    /**
31
     * Dumper styles
32
     * @var string[]
33
     */
34
    private $dumperStyle = [
35
        'default' => 'background-color:#FFFFFF; color:#FF8400; line-height:1.2em; font:12px Menlo, Monaco, Consolas, monospace; word-wrap: break-word; white-space: pre-wrap; position:relative; z-index:99999; word-break: break-all',
36
        'public' => 'color:#222222',
37
        'protected' => 'color:#222222',
38
        'private' => 'color:#222222'
39
    ];
40
41
    /**
42
     * @inheritDoc
43
     */
44
    public function report(string $level, $message, array $context = [])
45
    {
46
        if (filter_var(config()->get('debug'), FILTER_VALIDATE_BOOLEAN)) {
47
            Debugger::addToStore(Debugger::MESSAGES, $level, $message);
48
        } else {
49
            $cloner = new VarCloner();
50
            $dumper = PHP_SAPI === 'cli' ? new CliDumper() : new HtmlDumper();
51
            $dumper->setStyles($this->dumperStyle);
52
            $dumper->dump($cloner->cloneVar($message));
53
        }
54
    }
55
56
}