Passed
Branch tests1.5 (af713c)
by Wanderson
01:19
created

Data::set()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 7
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 5
nc 2
nop 2
dl 0
loc 7
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace Win\Data;
4
5
use Win\DesignPattern\SingletonTrait;
6
7
/**
8
 * Dados
9
 */
10
class Data implements DataInterface {
11
12
	use SingletonTrait;
13
14
	protected $data = [];
15
16
	/**
17
	 * Retorna valor
18
	 * @param string $key
19
	 * @param string $default Valor default, caso a $key não exista
20
	 */
21
	public function get($key, $default = '') {
22
		$data = $this->data;
23
		$keys = explode('.', $key);
24
		foreach ($keys as $k) {
25
			if (is_array($data) && array_key_exists($k, $data)) {
26
				$data = $data[$k];
27
			} else {
28
				return $default;
29
			}
30
		}
31
		return $data;
32
	}
33
34
	public function all() {
35
		return $this->data;
36
	}
37
38
	public function set($key, $value) {
39
		$p = &$this->data;
40
		$keys = explode('.', $key);
41
		foreach ($keys as $key) {
0 ignored issues
show
introduced by
$key is overwriting one of the parameters of this function.
Loading history...
42
			$p = &$p[$key];
43
		}
44
		$p = $value;
45
	}
46
47
	public function clear() {
48
		$this->data = [];
49
	}
50
51
	public function delete($key) {
52
		unset($this->data[$key]);
53
	}
54
55
}
56