File tree Expand file tree Collapse file tree 2 files changed +27
-21
lines changed Expand file tree Collapse file tree 2 files changed +27
-21
lines changed Original file line number Diff line number Diff line change @@ -15,7 +15,12 @@ trait ArrayStorage
15
15
/** @var array */
16
16
private $ data = [];
17
17
18
- private function propertyExists ($ name ): bool
18
+ /**
19
+ * @param string $name
20
+ *
21
+ * @return bool
22
+ */
23
+ private function propertyExists (string $ name ): bool
19
24
{
20
25
return $ name !== 'data ' && property_exists ($ this , $ name );
21
26
}
@@ -31,16 +36,13 @@ public function __get(string $name)
31
36
return $ this ->$ name ;
32
37
}
33
38
34
- if (array_key_exists ($ name , $ this ->data )) {
35
- $ val = Arr::get ($ this ->data , $ name );
36
- return $ this ->data [$ name ];
39
+ if (Arr::has ($ this ->data , $ name )) {
40
+ return Arr::get ($ this ->data , $ name );
37
41
}
38
42
39
43
$ trace = debug_backtrace ();
40
44
trigger_error (
41
- 'Undefined property in __get(): ' . $ name .
42
- ' in file ' . $ trace [0 ]['file ' ] .
43
- ' in line ' . $ trace [0 ]['line ' ],
45
+ "Undefined property in __get(): $ name in file {$ trace [0 ]['file ' ]} in line {$ trace [0 ]['line ' ]}" ,
44
46
E_USER_NOTICE );
45
47
return null ;
46
48
}
@@ -55,7 +57,7 @@ public function __set(string $name, $value): void
55
57
$ this ->$ name = $ value ;
56
58
}
57
59
58
- $ this ->data [ $ name] = $ value ;
60
+ Arr:: set ( $ this ->data , $ name, $ value) ;
59
61
}
60
62
61
63
/**
Original file line number Diff line number Diff line change @@ -40,22 +40,26 @@ public function testDeepData(): void
40
40
static ::assertEquals ('test ' , $ config ->{'upper.sad.as ' });
41
41
}
42
42
43
- public function testUnset (): void
43
+ public function testGetData (): void
44
44
{
45
45
$ config = new ArrayStorageClassTest ;
46
- $ key = 'test.sub.key ' ;
47
-
48
- static ::assertFalse (isset ($ config ->$ key ));
49
-
50
- $ config ->$ key = 1 ;
51
- static ::assertTrue (isset ($ config ->$ key ));
52
-
53
- static ::assertEquals (1 , $ config ->$ key );
54
-
55
- unset($ config ->$ key );
56
-
57
- static ::assertFalse (isset ($ config ->$ key ));
58
46
47
+ $ config ->{'test.sub.key ' } = 1 ;
48
+ $ config ->{'test.sub.val ' } = 'value ' ;
49
+
50
+ $ config ->{'test.next ' } = 'next value ' ;
51
+ $ expected = [
52
+ 'test ' => [
53
+ 'sub ' => [
54
+ 'key ' => 1 ,
55
+ 'val ' => 'value ' ,
56
+ ],
57
+ 'next ' => 'next value ' ,
58
+ ],
59
+ ];
60
+
61
+ static ::assertEquals ($ expected ['test ' ], $ config ->test );
62
+ static ::assertEquals ($ expected , $ config ->getData ());
59
63
}
60
64
61
65
public function testUnset2 (): void
You can’t perform that action at this time.
0 commit comments