LaravelGeneratorServiceProvider   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 67
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 25
dl 0
loc 67
rs 10
c 0
b 0
f 0
wmc 5

3 Methods

Rating   Name   Duplication   Size   Complexity  
A boot() 0 35 3
A register() 0 7 1
A provides() 0 3 1
1
<?php
2
3
namespace Lbil\LaravelGenerator\Providers;
4
5
use Illuminate\Support\ServiceProvider;
6
use Lbil\LaravelGenerator\Helpers\ConfigHelper;
7
8
class LaravelGeneratorServiceProvider extends ServiceProvider
9
{
10
    /**
11
     * Bootstrap services.
12
     *
13
     * @return void
14
     */
15
    public function boot(): void
16
    {
17
        $viewPath = __DIR__.'/../../resources/views';
18
        $this->loadViewsFrom($viewPath, 'laravel-generator');
19
20
        // Publish a config file
21
        $configPath = __DIR__.'/../../config/laravel-generator.php';
22
        $this->publishes([
23
            $configPath => config_path('laravel-generator.php'),
24
        ], 'config');
25
26
        // Publish views
27
        $this->publishes([
28
            __DIR__.'/../../resources/views' => config('laravel-generator.defaults.paths.views'),
29
        ], 'views');
30
31
        // Include routes
32
        $routePath = __DIR__.'/../../routes/web.php';
33
        if (file_exists($routePath)) {
34
            $this->loadRoutesFrom($routePath);
35
        }
36
37
        // Load package helpers file
38
        $helpersPath = __DIR__.'/../../common/helpers.php';
39
        if (file_exists($helpersPath)) {
40
            require_once $helpersPath;
41
        }
42
43
        // Load language files
44
        $this->loadTranslationsFrom(__DIR__.'/../../lang', 'laravel-generator');
45
46
        // Publish language files
47
        $this->publishes([
48
            __DIR__.'/../../lang' => resource_path('lang/vendor/laravel-generator'),
49
        ], 'lang');
50
    }
51
52
    /**
53
     * Register services.
54
     *
55
     * @return void
56
     */
57
    public function register(): void
58
    {
59
        $configPath = __DIR__.'/../../config/laravel-generator.php';
60
        $this->mergeConfigFrom($configPath, 'laravel-generator');
61
62
        $this->app->singleton('laravel-generator', function () {
63
            return new ConfigHelper();
64
        });
65
    }
66
67
    /**
68
     * Get the services provided by the provider.
69
     *
70
     * @return array|null
71
     */
72
    public function provides(): ?array
73
    {
74
        return ['laravel-generator'];
75
    }
76
}
77