ExampleServiceProvider::boot()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 5
nc 1
nop 0
dl 0
loc 7
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace Modules\Example\Providers;
4
5
use Illuminate\Database\Eloquent\Factory;
6
use Illuminate\Support\ServiceProvider as BaseServiceProvider;
7
8
class ExampleServiceProvider extends BaseServiceProvider
9
{
10
    /**
11
     * Indicates if loading of the provider is deferred.
12
     *
13
     * @var bool
14
     */
15
    protected $defer = false;
16
17
    /**
18
     * Boot the application events.
19
     *
20
     * @return void
21
     */
22
    public function boot()
23
    {
24
        $this->registerTranslations();
25
        $this->registerConfig();
26
        $this->registerViews();
27
        $this->registerFactories();
28
        $this->loadMigrationsFrom(__DIR__.'/../Database/Migrations');
29
    }
30
31
    /**
32
     * Register the service provider.
33
     *
34
     * @return void
35
     */
36
    public function register()
37
    {
38
        $this->app->register(RouteServiceProvider::class);
39
        $this->app->register(ControllerServiceProvider::class);
40
        $this->app->register(ServiceServiceProvider::class);
41
        $this->app->register(RepositoryServiceProvider::class);
42
    }
43
44
    /**
45
     * Register config.
46
     *
47
     * @return void
48
     */
49
    protected function registerConfig()
50
    {
51
        $this->publishes([
52
            __DIR__.'/../Config/config.php' => config_path('example.php'),
53
        ], 'config');
54
        $this->mergeConfigFrom(
55
            __DIR__.'/../Config/config.php', 'example'
56
        );
57
    }
58
59
    /**
60
     * Register views.
61
     *
62
     * @return void
63
     */
64
    public function registerViews()
65
    {
66
        $viewPath = resource_path('views/modules/example');
67
68
        $sourcePath = __DIR__.'/../Resources/views';
69
70
        $this->publishes([
71
            $sourcePath => $viewPath,
72
        ], 'views');
73
74
        $this->loadViewsFrom(array_merge(array_map(function ($path) {
75
            return $path.'/modules/example';
76
        }, \Config::get('view.paths')), [$sourcePath]), 'example');
77
    }
78
79
    /**
80
     * Register translations.
81
     *
82
     * @return void
83
     */
84
    public function registerTranslations()
85
    {
86
        $langPath = resource_path('lang/modules/example');
87
88
        if (is_dir($langPath)) {
89
            $this->loadTranslationsFrom($langPath, 'example');
90
        } else {
91
            $this->loadTranslationsFrom(__DIR__.'/../Resources/lang', 'example');
92
        }
93
    }
94
95
    /**
96
     * Register an additional directory of factories.
97
     *
98
     * @return void
99
     */
100
    public function registerFactories()
101
    {
102
        if (!$this->app->environment('production')) {
103
            app(Factory::class)->load(__DIR__.'/../Database/factories');
104
        }
105
    }
106
107
    /**
108
     * Get the services provided by the provider.
109
     *
110
     * @return array
111
     */
112
    public function provides()
113
    {
114
        return [];
115
    }
116
}
117