Completed
Push — master ( 359682...f53f41 )
by Nassif
10:28
created

Util::varExport()   B

Complexity

Conditions 7
Paths 7

Size

Total Lines 21
Code Lines 16

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 1 Features 0
Metric Value
c 1
b 1
f 0
dl 0
loc 21
rs 7.551
cc 7
eloc 16
nc 7
nop 2
1
<?php
2
3
namespace Nikaia\TranslationSheet;
4
5
use Illuminate\Support\Collection;
6
7
class Util
8
{
9
    public static function varExport($var, $indent = '')
10
    {
11
        switch (gettype($var)) {
12
            case 'string':
13
                return '"'.addcslashes($var, "\\\$\"\r\n\t\v\f").'"';
14
            case 'array':
15
                $indexed = array_keys($var) === range(0, count($var) - 1);
16
                $r = [];
17
                foreach ($var as $key => $value) {
18
                    $r[] = "$indent    "
19
                        .($indexed ? '' : self::varExport($key).' => ')
20
                        .self::varExport($value, "$indent    ");
21
                }
22
23
                return "[\n".implode(",\n", $r)."\n".$indent.']';
24
            case 'boolean':
25
                return $var ? 'true' : 'false';
26
            default:
27
                return var_export($var, true);
28
        }
29
    }
30
31
    public static function keyValues($values, $keys)
32
    {
33
        $values = $values instanceof Collection ? $values : new Collection($values);
34
35
        return $values->map(function ($values) use ($keys) {
36
            return array_combine($keys, $values);
37
        });
38
    }
39
}
40