MediaLibraryServiceProvider::boot()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 22

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 22
rs 9.568
c 0
b 0
f 0
cc 2
nc 2
nop 0
1
<?php
2
3
namespace Spatie\MediaLibrary;
4
5
use Illuminate\Support\ServiceProvider;
6
use Spatie\MediaLibrary\Commands\CleanCommand;
7
use Spatie\MediaLibrary\Commands\ClearCommand;
8
use Spatie\MediaLibrary\Commands\RegenerateCommand;
9
use Spatie\MediaLibrary\Filesystem\Filesystem;
10
use Spatie\MediaLibrary\ResponsiveImages\TinyPlaceholderGenerator\TinyPlaceholderGenerator;
11
use Spatie\MediaLibrary\ResponsiveImages\WidthCalculator\WidthCalculator;
12
13
class MediaLibraryServiceProvider extends ServiceProvider
14
{
15
    public function boot()
16
    {
17
        $this->publishes([
18
            __DIR__.'/../config/medialibrary.php' => config_path('medialibrary.php'),
19
        ], 'config');
20
21
        if (! class_exists('CreateMediaTable')) {
22
            $this->publishes([
23
                __DIR__.'/../database/migrations/create_media_table.php.stub' => database_path('migrations/'.date('Y_m_d_His', time()).'_create_media_table.php'),
24
            ], 'migrations');
25
        }
26
27
        $this->publishes([
28
            __DIR__.'/../resources/views' => resource_path('views/vendor/medialibrary'),
29
        ], 'views');
30
31
        $mediaClass = config('medialibrary.media_model');
32
33
        $mediaClass::observe(new MediaObserver());
34
35
        $this->loadViewsFrom(__DIR__.'/../resources/views', 'medialibrary');
36
    }
37
38
    public function register()
39
    {
40
        $this->mergeConfigFrom(__DIR__.'/../config/medialibrary.php', 'medialibrary');
41
42
        $this->app->singleton(MediaRepository::class, function () {
43
            $mediaClass = config('medialibrary.media_model');
44
45
            return new MediaRepository(new $mediaClass);
46
        });
47
48
        $this->app->bind('command.medialibrary:regenerate', RegenerateCommand::class);
49
        $this->app->bind('command.medialibrary:clear', ClearCommand::class);
50
        $this->app->bind('command.medialibrary:clean', CleanCommand::class);
51
52
        $this->app->bind(Filesystem::class, Filesystem::class);
53
54
        $this->app->bind(WidthCalculator::class, config('medialibrary.responsive_images.width_calculator'));
55
        $this->app->bind(TinyPlaceholderGenerator::class, config('medialibrary.responsive_images.tiny_placeholder_generator'));
56
57
        $this->commands([
58
            'command.medialibrary:regenerate',
59
            'command.medialibrary:clear',
60
            'command.medialibrary:clean',
61
        ]);
62
63
        $this->registerDeprecatedConfig();
64
    }
65
66
    protected function registerDeprecatedConfig()
67
    {
68
        if (! config('medialibrary.disk_name')) {
69
            config(['medialibrary.disk_name' => config('medialibrary.default_filesystem')]);
70
        }
71
    }
72
}
73