@@ -25,8 +25,6 @@ class Manager
25
25
26
26
private static $ configurations = array ();
27
27
28
- private static $ configured = array ();
29
-
30
28
public static function initialize ($ url , $ cache = false )
31
29
{
32
30
switch ($ scheme = parse_url ($ url , PHP_URL_SCHEME )) {
@@ -49,7 +47,6 @@ public static function initialize($url, $cache = false)
49
47
50
48
public static function defaults ($ class , $ configuration = array (), $ domain = '__default__ ' )
51
49
{
52
- static ::$ configured [$ class ] = true ;
53
50
if ($ parent = get_parent_class ($ class )) {
54
51
$ configuration = array_replace_recursive (static ::get ($ parent , null , $ domain ), $ configuration );
55
52
}
@@ -58,8 +55,6 @@ public static function defaults($class, $configuration = array(), $domain = '__d
58
55
}
59
56
if (isset (static ::$ configurations [$ domain ][$ class ])) {
60
57
$ configuration = array_replace_recursive ($ configuration , static ::$ configurations [$ domain ][$ class ]);
61
- } elseif ($ default = static ::get ($ class , null , $ domain )) {
62
- $ configuration = array_replace_recursive ($ configuration , $ default );
63
58
}
64
59
static ::$ configurations [$ domain ][$ class ] = $ configuration ;
65
60
}
@@ -69,24 +64,37 @@ public static function configure($class, $configuration = array(), $domain = '__
69
64
if (!isset (static ::$ configurations [$ domain ][$ class ])) {
70
65
static ::$ configurations [$ domain ][$ class ] = array ();
71
66
}
72
- static ::$ configurations [$ domain ][$ class ] = array_replace_recursive (static ::$ configurations [$ class ], $ configuration );
67
+ static ::$ configurations [$ domain ][$ class ] = array_replace_recursive (static ::$ configurations [$ domain ][ $ class ], $ configuration );
73
68
}
74
69
75
- public static function get ($ class , $ key = null , $ domain = '__default__ ' )
70
+ public static function get ($ class , $ keys = null , $ domain = '__default__ ' )
76
71
{
77
- if (! isset (static ::$ configurations [$ domain][ $ class ])) {
78
- return $ domain === ' __default__ ' ? array () : static :: get ( $ class , $ key );
72
+ if (!isset (static ::$ configurations [$ domain ])) {
73
+ static :: $ configurations [ $ domain] = array ();
79
74
}
80
- if (! isset (static ::$ configured [$ class ])) {
75
+ if (!isset (static ::$ configurations [ $ domain ] [$ class ])) {
81
76
static ::defaults ($ class , array (), $ domain );
82
77
}
83
- $ configuration = ($ domain === '__default__ ' ) ? static ::$ configurations [$ domain ][$ class ] : array_replace_recursive (static ::get ($ class ), static ::$ configurations [$ domain ][$ class ]);
84
- if (null !== $ key ) {
85
- foreach (explode ('. ' , $ key ) as $ key ) {
86
- if (! isset ($ configuration [$ key ])) {
87
- return null ;
78
+ $ configuration = static ::$ configurations [$ domain ][$ class ];
79
+ if (null !== $ keys ) {
80
+ foreach (explode ('. ' , $ keys ) as $ key ) {
81
+ if (!isset ($ configuration [$ key ])) {
82
+ if ($ domain != '__default__ ' ) {
83
+ if (get_parent_class ($ class )) {
84
+ $ configuration = static ::get ($ class , $ keys ) ? : static ::get (get_parent_class ($ class ), $ keys , $ domain );
85
+ } else {
86
+ $ configuration = static ::get ($ class , $ keys );
87
+ }
88
+ } else {
89
+ if (get_parent_class ($ class )) {
90
+ $ configuration = static ::get (get_parent_class ($ class ), $ keys , $ domain );
91
+ } else {
92
+ return null ;
93
+ }
94
+ }
95
+ } else {
96
+ $ configuration = $ configuration [$ key ];
88
97
}
89
- $ configuration = $ configuration [$ key ];
90
98
}
91
99
}
92
100
return $ configuration ;
0 commit comments