ValueRenderer::render()   B
last analyzed

Complexity

Conditions 9
Paths 8

Size

Total Lines 17
Code Lines 15

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 15
c 1
b 0
f 0
dl 0
loc 17
rs 8.0555
cc 9
nc 8
nop 3
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Cycle\Schema\Renderer\PhpFileRenderer\Exporter\Rendering;
6
7
use Cycle\Schema\Renderer\PhpFileRenderer\Exporter\ExporterItem;
8
9
final class ValueRenderer
10
{
11
    /**
12
     * @param mixed $value
13
     */
14
    public static function render($value, bool $wrapValue = true, int $indentLevel = 0): string
15
    {
16
        switch (true) {
17
            case $value === null:
18
                return 'null';
19
            case is_bool($value):
20
                return $value ? 'true' : 'false';
21
            case is_array($value):
22
                return ArrayRenderer::render($value, $indentLevel);
23
            case $value instanceof ExporterItem:
24
                return $value->toString();
25
            case !$wrapValue || is_int($value):
26
                return (string)$value;
27
            case is_string($value):
28
                return "'" . addslashes($value) . "'";
29
            default:
30
                return "unserialize('" . addslashes(serialize($value)) . "')";
31
        }
32
    }
33
}
34