MediaLibraryServiceProvider   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 60
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Importance

Changes 0
Metric Value
wmc 5
lcom 1
cbo 4
dl 0
loc 60
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A register() 0 27 1
A registerDeprecatedConfig() 0 6 2
A boot() 0 22 2
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