Commit c13b54da1de36c1db6cdb9d380867094c580c997
1 parent
89ecf44a
add local config
Showing
2 changed files
with
30 additions
and
1 deletions
Show diff stats
.gitignore
src/lib/config.php
... | ... | @@ -32,7 +32,10 @@ namespace |
32 | 32 | */ |
33 | 33 | public function __construct() |
34 | 34 | { |
35 | - $this->config = require( ROOT_PATH.'config/global.php' ); | |
35 | + $this->config = self::merge( | |
36 | + require( ROOT_PATH.'config/global.php' ), | |
37 | + require( ROOT_PATH.'config/global-local.php' ) | |
38 | + ); | |
36 | 39 | } |
37 | 40 | |
38 | 41 | /////////////////////////////////////////////////////////////////////// |
... | ... | @@ -270,6 +273,31 @@ namespace |
270 | 273 | { |
271 | 274 | return ROOT_PATH.'log/'; |
272 | 275 | } |
276 | + | |
277 | + | |
278 | + public static function merge($a, $b) | |
279 | + { | |
280 | + $args = func_get_args(); | |
281 | + $res = array_shift($args); | |
282 | + while (!empty($args)) { | |
283 | + $next = array_shift($args); | |
284 | + foreach ($next as $k => $v) { | |
285 | + if (is_int($k)) { | |
286 | + if (isset($res[$k])) { | |
287 | + $res[] = $v; | |
288 | + } else { | |
289 | + $res[$k] = $v; | |
290 | + } | |
291 | + } elseif (is_array($v) && isset($res[$k]) && is_array($res[$k])) { | |
292 | + $res[$k] = self::merge($res[$k], $v); | |
293 | + } else { | |
294 | + $res[$k] = $v; | |
295 | + } | |
296 | + } | |
297 | + } | |
298 | + | |
299 | + return $res; | |
300 | + } | |
273 | 301 | |
274 | 302 | /////////////////////////////////////////////////////////////////////// |
275 | 303 | } | ... | ... |