Skip to content

Commit a4dde9c

Browse files
committed
Fix manager
1 parent 94fef7f commit a4dde9c

File tree

1 file changed

+24
-16
lines changed

1 file changed

+24
-16
lines changed

src/Manager.php

Lines changed: 24 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,6 @@ class Manager
2525

2626
private static $configurations = array();
2727

28-
private static $configured = array();
29-
3028
public static function initialize($url, $cache = false)
3129
{
3230
switch ($scheme = parse_url($url, PHP_URL_SCHEME)) {
@@ -49,7 +47,6 @@ public static function initialize($url, $cache = false)
4947

5048
public static function defaults($class, $configuration = array(), $domain = '__default__')
5149
{
52-
static::$configured[$class] = true;
5350
if ($parent = get_parent_class($class)) {
5451
$configuration = array_replace_recursive(static::get($parent, null, $domain), $configuration);
5552
}
@@ -58,8 +55,6 @@ public static function defaults($class, $configuration = array(), $domain = '__d
5855
}
5956
if (isset(static::$configurations[$domain][$class])) {
6057
$configuration = array_replace_recursive($configuration, static::$configurations[$domain][$class]);
61-
} elseif($default = static::get($class, null, $domain)) {
62-
$configuration = array_replace_recursive($configuration, $default);
6358
}
6459
static::$configurations[$domain][$class] = $configuration;
6560
}
@@ -69,24 +64,37 @@ public static function configure($class, $configuration = array(), $domain = '__
6964
if (!isset(static::$configurations[$domain][$class])) {
7065
static::$configurations[$domain][$class] = array();
7166
}
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);
7368
}
7469

75-
public static function get($class, $key = null, $domain = '__default__')
70+
public static function get($class, $keys = null, $domain = '__default__')
7671
{
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();
7974
}
80-
if (! isset(static::$configured[$class])) {
75+
if (!isset(static::$configurations[$domain][$class])) {
8176
static::defaults($class, array(), $domain);
8277
}
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];
8897
}
89-
$configuration = $configuration[$key];
9098
}
9199
}
92100
return $configuration;

0 commit comments

Comments
 (0)