Passed
Pull Request — master (#19)
by Rustam
02:36
created

Message::message()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 1
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 3
ccs 2
cts 2
cp 1
crap 1
rs 10
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Yiisoft\Profiler;
6
7
use Psr\Log\InvalidArgumentException;
8
use Psr\Log\LoggerTrait;
9
use Psr\Log\LogLevel;
10
11
/**
12
 * Message is a data object that stores log message data.
13
 */
14
final class Message
15
{
16
    /**
17
     * @var string Log message level.
18
     *
19
     * @see LogLevel See constants for valid level names.
20
     */
21
    private string $level;
22
23
    /**
24
     * @var string Log message.
25
     */
26
    private string $message;
27
28
    /**
29
     * @var array Log message context.
30
     *
31
     * Message context has a following keys:
32
     *
33
     * - category: string, message category.
34
     * - memory: int, memory usage in bytes, obtained by `memory_get_usage()`.
35
     * - time: float, message timestamp obtained by microtime(true).
36
     * - trace: array, debug backtrace, contains the application code call stacks.
37
     */
38
    private array $context;
39
40
    /**
41
     * @param mixed $level Log message level.
42
     * @param mixed $message Log message.
43
     * @param array $context Log message context.
44
     *
45
     * @throws InvalidArgumentException for invalid log message level.
46
     *
47
     * @see LoggerTrait::log()
48
     * @see LogLevel
49
     */
50 12
    public function __construct($level, string $message, array $context = [])
51
    {
52 12
        $this->level = $level;
53 12
        $this->message = $message;
54 12
        $this->context = $context;
55 12
    }
56
57
    /**
58
     * Gets a log message level.
59
     *
60
     * @return string Log message level.
61
     */
62 6
    public function level(): string
63
    {
64 6
        return $this->level;
65
    }
66
67
    /**
68
     * Gets a log message.
69
     *
70
     * @return string Log message.
71
     */
72 8
    public function message(): string
73
    {
74 8
        return $this->message;
75
    }
76
77
    /**
78
     * Returns a value of the context parameter for the specified name.
79
     *
80
     * If no name is specified, the entire context is returned.
81
     *
82
     * @param string|null $name The context parameter name.
83
     * @param mixed $default If the context parameter does not exist, the `$default` will be returned.
84
     *
85
     * @return mixed The context parameter value.
86
     */
87 8
    public function context(string $name = null, $default = null)
88
    {
89 8
        if ($name === null) {
90 7
            return $this->context;
91
        }
92
93 4
        return $this->context[$name] ?? $default;
94
    }
95
}
96