Skip to content

Commit 2429521

Browse files
committed
Update to psr-4, add multitenancy implementation
1 parent 818ff51 commit 2429521

File tree

5 files changed

+35
-36
lines changed

5 files changed

+35
-36
lines changed

composer.json

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,14 @@
1212
"configuration"
1313
],
1414
"homepage" : "https://github.com/breadphp/configuration",
15-
"license" : [
16-
"CC-BY-3.0"
17-
],
15+
"license" : "CC-BY-3.0",
1816
"require" : {
1917
"php" : ">=5.4",
2018
"bread/caching" : "~1.0"
2119
},
2220
"autoload" : {
23-
"psr-0" : {
24-
"Bread\\Configuration" : "src"
21+
"psr-4" : {
22+
"Bread\\Configuration\\" : "src"
2523
}
2624
}
27-
}
25+
}

src/Bread/Configuration/Manager.php renamed to src/Manager.php

Lines changed: 31 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -47,66 +47,67 @@ public static function initialize($url, $cache = false)
4747
}
4848
}
4949

50-
public static function defaults($class, $configuration = array())
50+
public static function defaults($class, $configuration = array(), $domain = '__default__')
5151
{
5252
static::$configured[$class] = true;
5353
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);
5555
}
5656
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);
5858
}
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);
6163
}
62-
static::$configurations[$class] = $configuration;
64+
static::$configurations[$domain][$class] = $configuration;
6365
}
6466

65-
public static function configure($class, $configuration = array())
67+
public static function configure($class, $configuration = array(), $domain = '__default__')
6668
{
67-
if (!isset(static::$configurations[$class])) {
68-
static::$configurations[$class] = array();
69+
if (!isset(static::$configurations[$domain][$class])) {
70+
static::$configurations[$domain][$class] = array();
6971
}
70-
static::$configurations[$class] = array_replace_recursive(static::$configurations[$class], $configuration);
72+
static::$configurations[$domain][$class] = array_replace_recursive(static::$configurations[$class], $configuration);
7173
}
7274

73-
public static function get($class, $key = null)
75+
public static function get($class, $key = null, $domain = '__default__')
7476
{
75-
if (!isset(static::$configured[$class])) {
76-
static::defaults($class);
77+
if (! isset(static::$configured[$class])) {
78+
static::defaults($class, array(), $domain);
7779
}
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);
8082
}
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];
8890
}
89-
$configuration = $configuration[$key];
9091
}
9192
return $configuration;
9293
}
9394

94-
public static function set($class, $key, $value = null)
95+
public static function set($class, $key, $value = null, $domain = '__default__')
9596
{
96-
if (!isset(static::$configurations[$class])) {
97-
static::$configurations[$class] = array();
97+
if (!isset(static::$configurations[$domain][$class])) {
98+
static::$configurations[$domain][$class] = array();
9899
}
99-
$configuration = static::$configurations[$class];
100+
$configuration = static::$configurations[$domain][$class];
100101
if (is_array($key)) {
101102
$newConfiguration = $key;
102103
} else {
103104
$newConfiguration = Parsers\Initialization::parse(array(
104105
$key => $value
105106
), false);
106107
}
107-
static::$configurations[$class] = array_replace_recursive($configuration, $newConfiguration);
108+
static::$configurations[$domain][$class] = array_replace_recursive($configuration, $newConfiguration);
108109
}
109-
110+
110111
protected static function parse($directory)
111112
{
112113
$configurations = array();
@@ -120,7 +121,7 @@ protected static function parse($directory)
120121
$configurations = array_replace_recursive($configurations, $Parser::parse($path));
121122
}
122123
}
123-
return static::$configurations = array_merge($configurations, static::$configurations);
124+
return static::$configurations = array_merge_recursive($configurations, static::$configurations);
124125
}
125126
}
126127

File renamed without changes.

0 commit comments

Comments
 (0)