IdeHelperServiceProvider   A
last analyzed

Complexity

Total Complexity 7

Size/Duplication

Total Lines 51
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
eloc 20
dl 0
loc 51
ccs 28
cts 28
cp 1
rs 10
c 0
b 0
f 0
wmc 7

6 Methods

Rating   Name   Duplication   Size   Complexity  
A register() 0 5 1
A publishConfig() 0 5 1
A boot() 0 3 1
A provides() 0 4 1
A registerConfig() 0 5 1
A registerIdeHelperHook() 0 14 2
1
<?php
2
3
namespace Staudenmeir\EloquentHasManyDeep;
4
5
use Barryvdh\LaravelIdeHelper\Console\ModelsCommand;
6
use Illuminate\Contracts\Support\DeferrableProvider;
7
use Illuminate\Support\ServiceProvider;
8
use Staudenmeir\EloquentHasManyDeep\IdeHelper\DeepRelationsHook;
9
10
class IdeHelperServiceProvider extends ServiceProvider implements DeferrableProvider
11
{
12 4
    public function boot(): void
13
    {
14 4
        $this->publishConfig();
15
    }
16
17 4
    public function register(): void
18
    {
19 4
        $this->registerConfig();
20
21 4
        $this->registerIdeHelperHook();
22
    }
23
24 2
    public function provides(): array
25
    {
26 2
        return [
27 2
            ModelsCommand::class,
28 2
        ];
29
    }
30
31 4
    protected function registerIdeHelperHook(): void
32
    {
33
        /** @var \Illuminate\Contracts\Config\Repository $config */
34 4
        $config = $this->app->get('config');
35
36 4
        if (!$config->get('eloquent-has-many-deep.ide_helper_enabled')) {
37 2
            return;
38
        }
39
40 2
        $config->set(
41 2
            'ide-helper.model_hooks',
42 2
            array_merge(
43 2
                [DeepRelationsHook::class],
44 2
                $config->get('ide-helper.model_hooks', [])
45 2
            )
46 2
        );
47
    }
48
49 4
    protected function publishConfig(): void
50
    {
51 4
        $this->publishes([
52 4
            __DIR__ . '/../config/eloquent-has-many-deep.php' => config_path('eloquent-has-many-deep.php'),
53 4
        ], 'eloquent-has-many-deep');
54
    }
55
56 4
    protected function registerConfig(): void
57
    {
58 4
        $this->mergeConfigFrom(
59 4
            __DIR__ . '/../config/eloquent-has-many-deep.php',
60 4
            'eloquent-has-many-deep',
61 4
        );
62
    }
63
}
64