DbSnapshotsServiceProvider::boot()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 28
Code Lines 19

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
eloc 19
c 2
b 0
f 0
dl 0
loc 28
rs 9.6333
cc 2
nc 2
nop 0
1
<?php
2
3
namespace Spatie\DbSnapshots;
4
5
use Illuminate\Contracts\Filesystem\Factory;
6
use Illuminate\Support\ServiceProvider;
7
use Spatie\DbSnapshots\Commands\Cleanup;
8
use Spatie\DbSnapshots\Commands\Create;
9
use Spatie\DbSnapshots\Commands\Delete;
10
use Spatie\DbSnapshots\Commands\ListSnapshots;
11
use Spatie\DbSnapshots\Commands\Load;
12
13
class DbSnapshotsServiceProvider extends ServiceProvider
14
{
15
    public function boot()
16
    {
17
        if ($this->app->runningInConsole()) {
18
            $this->publishes([
19
                __DIR__.'/../config/db-snapshots.php' => config_path('db-snapshots.php'),
20
            ], 'config');
21
        }
22
23
        $this->app->bind(SnapshotRepository::class, function () {
24
            $diskName = config('db-snapshots.disk');
25
26
            $disk = app(Factory::class)->disk($diskName);
27
28
            return new SnapshotRepository($disk);
29
        });
30
31
        $this->app->bind('command.snapshot:create', Create::class);
32
        $this->app->bind('command.snapshot:load', Load::class);
33
        $this->app->bind('command.snapshot:delete', Delete::class);
34
        $this->app->bind('command.snapshot:list', ListSnapshots::class);
35
        $this->app->bind('command.snapshot:cleanup', Cleanup::class);
36
37
        $this->commands([
38
            'command.snapshot:create',
39
            'command.snapshot:load',
40
            'command.snapshot:delete',
41
            'command.snapshot:list',
42
            'command.snapshot:cleanup',
43
        ]);
44
    }
45
46
    public function register()
47
    {
48
        $this->mergeConfigFrom(__DIR__.'/../config/db-snapshots.php', 'db-snapshots');
49
    }
50
}
51