JsonRenderer   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 27
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 2
eloc 13
dl 0
loc 27
ccs 21
cts 21
cp 1
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A render() 0 8 1
A renderVerbose() 0 13 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Yiisoft\ErrorHandler\Renderer;
6
7
use Psr\Http\Message\ServerRequestInterface;
8
use Throwable;
9
use Yiisoft\ErrorHandler\ErrorData;
10
use Yiisoft\ErrorHandler\ThrowableRendererInterface;
11
12
use function json_encode;
13
14
/**
15
 * Formats throwable into JSON string.
16
 */
17
final class JsonRenderer implements ThrowableRendererInterface
18
{
19 2
    public function render(Throwable $t, ServerRequestInterface $request = null): ErrorData
20
    {
21 2
        return new ErrorData(
22 2
            json_encode(
23 2
                [
24 2
                    'message' => self::DEFAULT_ERROR_MESSAGE,
25 2
                ],
26 2
                JSON_THROW_ON_ERROR | JSON_UNESCAPED_SLASHES
27 2
            )
28 2
        );
29
    }
30
31 3
    public function renderVerbose(Throwable $t, ServerRequestInterface $request = null): ErrorData
32
    {
33 3
        return new ErrorData(
34 3
            json_encode(
35 3
                [
36 3
                    'type' => $t::class,
37 3
                    'message' => $t->getMessage(),
38 3
                    'code' => $t->getCode(),
39 3
                    'file' => $t->getFile(),
40 3
                    'line' => $t->getLine(),
41 3
                    'trace' => $t->getTrace(),
42 3
                ],
43 3
                JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_INVALID_UTF8_SUBSTITUTE | JSON_PARTIAL_OUTPUT_ON_ERROR
44 3
            )
45 3
        );
46
    }
47
}
48