Completed
Push — master ( 4e1fd0...6b9342 )
by Matthieu
02:24
created

ArrayDefinition::setName()   A

Complexity

Conditions 1
Paths 1

Duplication

Lines 0
Ratio 0 %

Size

Total Lines 4
Code Lines 2

Importance

Changes 0
Metric Value
cc 1
eloc 2
nc 1
nop 1
dl 0
loc 4
rs 10
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace DI\Definition;
6
7
/**
8
 * Definition of an array containing values or references.
9
 *
10
 * @since 5.0
11
 * @author Matthieu Napoli <[email protected]>
12
 */
13
class ArrayDefinition implements Definition
14
{
15
    /**
16
     * Entry name.
17
     * @var string
18
     */
19
    private $name = '';
20
21
    /**
22
     * @var array
23
     */
24
    private $values;
25
26
    public function __construct(array $values)
27
    {
28
        $this->values = $values;
29
    }
30
31
    public function getName() : string
32
    {
33
        return $this->name;
34
    }
35
36
    public function setName(string $name)
37
    {
38
        $this->name = $name;
39
    }
40
41
    public function getValues() : array
42
    {
43
        return $this->values;
44
    }
45
46
    public function replaceNestedDefinitions(callable $replacer)
47
    {
48
        $this->values = array_map($replacer, $this->values);
49
    }
50
51
    public function __toString()
52
    {
53
        $str = '[' . PHP_EOL;
54
55
        foreach ($this->values as $key => $value) {
56
            if (is_string($key)) {
57
                $key = "'" . $key . "'";
58
            }
59
60
            $str .= '    ' . $key . ' => ';
61
62
            if ($value instanceof Definition) {
63
                $str .= str_replace(PHP_EOL, PHP_EOL . '    ', $value);
64
            } else {
65
                $str .= var_export($value, true);
66
            }
67
68
            $str .= ',' . PHP_EOL;
69
        }
70
71
        return $str . ']';
72
    }
73
}
74