JsonRenderer::renderVerbose()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 13
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 12
CRAP Score 1

Importance

Changes 0
Metric Value
eloc 9
dl 0
loc 13
ccs 12
cts 12
cp 1
rs 9.9666
c 0
b 0
f 0
cc 1
nc 1
nop 2
crap 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