/
DefaultSettingsRepository.php
47 lines (37 loc) · 1.08 KB
/
DefaultSettingsRepository.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php
/*
* This file is part of Flarum.
*
* For detailed copyright and license information, please view the
* LICENSE file that was distributed with this source code.
*/
namespace Flarum\Settings;
use Illuminate\Support\Collection;
class DefaultSettingsRepository implements SettingsRepositoryInterface
{
protected $defaults;
private $inner;
public function __construct(SettingsRepositoryInterface $inner, Collection $defaults)
{
$this->inner = $inner;
$this->defaults = $defaults;
}
public function get($key, $default = null)
{
// Global default overrules local default because local default is deprecated,
// and will be removed in 2.0
return $this->inner->get($key, $this->defaults->get($key, $default));
}
public function set($key, $value)
{
$this->inner->set($key, $value);
}
public function delete($keyLike)
{
$this->inner->delete($keyLike);
}
public function all(): array
{
return array_merge($this->defaults->toArray(), $this->inner->all());
}
}