-
Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy pathConfigServiceProvider.php
More file actions
executable file
·122 lines (108 loc) · 2.88 KB
/
Copy pathConfigServiceProvider.php
File metadata and controls
executable file
·122 lines (108 loc) · 2.88 KB
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
<?php
namespace Fusion\Providers;
use Fusion\Models\Disk;
use Illuminate\Support\Arr;
use Illuminate\Support\Facades\File;
use Illuminate\Support\ServiceProvider;
class ConfigServiceProvider extends ServiceProvider
{
/**
* Register the provided services.
* Merges in `fusioncms` overridding configs.
*
* @return void
*/
public function register()
{
$this->registerMacro();
}
/**
* Boot the provided services.
*
* @return void
*/
public function boot()
{
/**
* FusionCMS will now merge it's own
* configurations on top of Laravel's.
*/
$this->resetBackupConfigurations();
$this->mergeFusionCMSConfigurations();
$this->mergeFileSystemConfigurations();
$this->registerMailServices();
}
/**
* Register mail services
*
* @return void
*/
protected function registerMailServices()
{
config(['sparkpost.secret' => setting('mail.mail_sparkpost_secret')]);
config(['mailgun.domain' => setting('mail.mail_mailgun_domain')]);
config(['mailgun.secret' => setting('mail.mail_mailgun_secret')]);
config(['mandrill.secret' => setting('mail.mail_mandrill_secret')]);
}
/**
* Add `mergeDeep` macro to Arr Facade.
*
* @var array
*/
protected function registerMacro()
{
Arr::macro('mergeDeep', function (array $arr1, array $arr2) {
$output = array_merge($arr1, $arr2);
foreach ($arr1 as $key => $value) {
if (is_numeric($key) or !isset($arr2[$key])) {
continue;
}
if (is_array($value) && is_array($arr2[$key])) {
$output[$key] = Arr::mergeDeep($value, $arr2[$key]);
}
}
return $output;
});
}
/**
* Reset backup configurations from `spatie/laravel-backup`
* so we can use a fresh copy of our own.
*
* @return void
*/
protected function resetBackupConfigurations()
{
$this->app['config']->set('backup', []);
}
/**
* Merge in FusionCMS config file configurations.
*
* @return void
*/
protected function mergeFusionCMSConfigurations()
{
$files = File::files(fusion_path('config'));
foreach ($files as $file) {
$path = $file->getPathname();
$name = File::name($path);
$this->app['config']->set(
$name,
Arr::mergeDeep(
require $path,
$this->app['config']->get($name, []),
)
);
}
}
/**
* Merge in FileSystem Disks configurations.
*
* @return void
*/
protected function mergeFileSystemConfigurations()
{
if (app_installed()) {
Disk::MergeConfigs();
}
}
}