JSON   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 38
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
eloc 13
c 1
b 0
f 1
dl 0
loc 38
rs 10
wmc 2

2 Methods

Rating   Name   Duplication   Size   Complexity  
A render() 0 15 1
A __construct() 0 3 1
1
<?php
2
/**
3
 * JSON style
4
 * User: moyo
5
 * Date: 21/11/2017
6
 * Time: 4:20 PM
7
 */
8
9
namespace Carno\Log\Formatter;
10
11
use Carno\Log\Contracts\Formatter;
12
use Carno\Log\Environment;
13
14
class JSON implements Formatter
15
{
16
    /**
17
     * @var Environment
18
     */
19
    private $env = null;
20
21
    /**
22
     * JSON constructor.
23
     * @param Environment $env
24
     */
25
    public function __construct(Environment $env)
26
    {
27
        $this->env = $env;
28
    }
29
30
    /**
31
     * @param string $scene
32
     * @param string $level
33
     * @param string $message
34
     * @param array $context
35
     * @return string
36
     */
37
    public function render(string $scene, string $level, string $message, array $context) : string
38
    {
39
        return json_encode(
40
            array_merge(
41
                [
42
                    '$app' => $this->env->app(),
43
                    '$host' => $this->env->host(),
44
                    '$scene' => $scene,
45
                    '$level' => $level,
46
                    '$message' => $message
47
                ],
48
                $context
49
            ),
50
            JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE
51
        ) . "\n";
52
    }
53
}
54