@@ -47,66 +47,67 @@ public static function initialize($url, $cache = false)
47
47
}
48
48
}
49
49
50
- public static function defaults ($ class , $ configuration = array ())
50
+ public static function defaults ($ class , $ configuration = array (), $ domain = ' __default__ ' )
51
51
{
52
52
static ::$ configured [$ class ] = true ;
53
53
if ($ parent = get_parent_class ($ class )) {
54
- $ configuration = array_replace_recursive (static ::get ($ parent ), $ configuration );
54
+ $ configuration = array_replace_recursive (static ::get ($ parent, null , $ domain ), $ configuration );
55
55
}
56
56
foreach (class_uses ($ class ) as $ trait ) {
57
- $ configuration = array_replace_recursive (static ::get ($ trait ), $ configuration );
57
+ $ configuration = array_replace_recursive (static ::get ($ trait, null , $ domain ), $ configuration );
58
58
}
59
- if (isset (static ::$ configurations [$ class ])) {
60
- $ configuration = array_replace_recursive ($ configuration , static ::$ configurations [$ class ]);
59
+ if (isset (static ::$ configurations [$ domain ][$ class ])) {
60
+ $ configuration = array_replace_recursive ($ configuration , static ::$ configurations [$ domain ][$ class ]);
61
+ } elseif ($ default = static ::get ($ class )) {
62
+ $ configuration = array_replace_recursive ($ configuration , $ default );
61
63
}
62
- static ::$ configurations [$ class ] = $ configuration ;
64
+ static ::$ configurations [$ domain ][ $ class ] = $ configuration ;
63
65
}
64
66
65
- public static function configure ($ class , $ configuration = array ())
67
+ public static function configure ($ class , $ configuration = array (), $ domain = ' __default__ ' )
66
68
{
67
- if (!isset (static ::$ configurations [$ class ])) {
68
- static ::$ configurations [$ class ] = array ();
69
+ if (!isset (static ::$ configurations [$ domain ][ $ class ])) {
70
+ static ::$ configurations [$ domain ][ $ class ] = array ();
69
71
}
70
- static ::$ configurations [$ class ] = array_replace_recursive (static ::$ configurations [$ class ], $ configuration );
72
+ static ::$ configurations [$ domain ][ $ class ] = array_replace_recursive (static ::$ configurations [$ class ], $ configuration );
71
73
}
72
74
73
- public static function get ($ class , $ key = null )
75
+ public static function get ($ class , $ key = null , $ domain = ' __default__ ' )
74
76
{
75
- if (!isset (static ::$ configured [$ class ])) {
76
- static ::defaults ($ class );
77
+ if (! isset (static ::$ configured [$ class ])) {
78
+ static ::defaults ($ class, array (), $ domain );
77
79
}
78
- if (!isset (static ::$ configurations [$ class ])) {
79
- return null ;
80
+ if (! isset (static ::$ configurations[ $ domain ] [$ class ])) {
81
+ return $ domain === ' __default__ ' ? null : static :: get ( $ class , $ key ) ;
80
82
}
81
- $ configuration = static ::$ configurations [$ class ];
82
- if (null = == $ key ) {
83
- return $ configuration ;
84
- }
85
- foreach ( explode ( ' . ' , $ key ) as $ key ) {
86
- if (! isset ( $ configuration [ $ key ])) {
87
- return null ;
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 ;
88
+ }
89
+ $ configuration = $ configuration [ $ key ] ;
88
90
}
89
- $ configuration = $ configuration [$ key ];
90
91
}
91
92
return $ configuration ;
92
93
}
93
94
94
- public static function set ($ class , $ key , $ value = null )
95
+ public static function set ($ class , $ key , $ value = null , $ domain = ' __default__ ' )
95
96
{
96
- if (!isset (static ::$ configurations [$ class ])) {
97
- static ::$ configurations [$ class ] = array ();
97
+ if (!isset (static ::$ configurations [$ domain ][ $ class ])) {
98
+ static ::$ configurations [$ domain ][ $ class ] = array ();
98
99
}
99
- $ configuration = static ::$ configurations [$ class ];
100
+ $ configuration = static ::$ configurations [$ domain ][ $ class ];
100
101
if (is_array ($ key )) {
101
102
$ newConfiguration = $ key ;
102
103
} else {
103
104
$ newConfiguration = Parsers \Initialization::parse (array (
104
105
$ key => $ value
105
106
), false );
106
107
}
107
- static ::$ configurations [$ class ] = array_replace_recursive ($ configuration , $ newConfiguration );
108
+ static ::$ configurations [$ domain ][ $ class ] = array_replace_recursive ($ configuration , $ newConfiguration );
108
109
}
109
-
110
+
110
111
protected static function parse ($ directory )
111
112
{
112
113
$ configurations = array ();
@@ -120,7 +121,7 @@ protected static function parse($directory)
120
121
$ configurations = array_replace_recursive ($ configurations , $ Parser ::parse ($ path ));
121
122
}
122
123
}
123
- return static ::$ configurations = array_merge ($ configurations , static ::$ configurations );
124
+ return static ::$ configurations = array_merge_recursive ($ configurations , static ::$ configurations );
124
125
}
125
126
}
126
127
0 commit comments