JsonRenderer   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 25
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 10
c 0
b 0
f 0
dl 0
loc 25
rs 10
wmc 3

1 Method

Rating   Name   Duplication   Size   Complexity  
A render() 0 20 3
1
<?php
2
3
declare(strict_types=1);
4
5
namespace BEAR\Resource;
6
7
use Override;
8
9
use function array_key_exists;
10
use function error_log;
11
use function json_encode;
12
use function json_last_error;
13
use function json_last_error_msg;
14
15
final class JsonRenderer implements RenderInterface
16
{
17
    /**
18
     * {@inheritDoc}
19
     */
20
    #[Override]
21
    public function render(ResourceObject $ro)
22
    {
23
        if (! array_key_exists('Content-Type', $ro->headers)) {
24
            $ro->headers['Content-Type'] = 'application/json';
25
        }
26
27
        $ro->view = (string) json_encode($ro);
28
        $e = json_last_error();
29
        if ($e) {
30
            // @codeCoverageIgnoreStart
31
            $msg = json_last_error_msg();
32
            error_log('json_encode error: ' . $msg . ' in ' . __METHOD__);
33
34
            return '';
35
36
            // @codeCoverageIgnoreEnd
37
        }
38
39
        return $ro->view;
40
    }
41
}
42