ValueRenderer   A
last analyzed

Complexity

Total Complexity 9

Size/Duplication

Total Lines 22
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 9
eloc 16
c 1
b 0
f 0
dl 0
loc 22
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
B render() 0 17 9
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