WorkflowServiceProvider   A
last analyzed

Complexity

Total Complexity 11

Size/Duplication

Total Lines 166
Duplicated Lines 0 %

Coupling/Cohesion

Components 2
Dependencies 4

Importance

Changes 4
Bugs 3 Features 0
Metric Value
c 4
b 3
f 0
dl 0
loc 166
rs 10
wmc 11
lcom 2
cbo 4

11 Methods

Rating   Name   Duplication   Size   Complexity  
A cssHandle() 0 8 1
A jsHandle() 0 8 1
A boot() 0 12 1
A register() 0 12 1
A provides() 0 7 1
A routeHandle() 0 4 1
A configHandle() 0 11 1
A langHandle() 0 10 1
A viewHandle() 0 10 1
A assetHandle() 0 8 1
A migrationHandle() 0 10 1
1
<?php namespace Bantenprov\Workflow;
2
3
use Illuminate\Support\ServiceProvider;
4
use Bantenprov\Workflow\Console\Commands\WorkflowCommand;
5
6
/**
7
 * The WorkflowServiceProvider class
8
 *
9
 * @package Bantenprov\Workflow
10
 * @author  bantenprov <[email protected]>
11
 */
12
class WorkflowServiceProvider extends ServiceProvider
13
{
14
15
    /**
16
     * Indicates if loading of the provider is deferred.
17
     *
18
     * @var bool
19
     */
20
    protected $defer = false;
21
22
    /**
23
     * Bootstrap the application events.
24
     *
25
     * @return void
26
     */
27
    public function boot()
28
    {
29
        // Bootstrap handles
30
        $this->routeHandle();
31
        $this->configHandle();
32
        $this->langHandle();
33
        $this->viewHandle();
34
        $this->assetHandle();
35
        $this->migrationHandle();
36
        $this->cssHandle();
37
        $this->jsHandle();
38
    }
39
40
    /**
41
     * Register the service provider.
42
     *
43
     * @return void
44
     */
45
    public function register()
46
    {
47
        $this->app->singleton('workflow', function ($app) {
0 ignored issues
show
Unused Code introduced by
The parameter $app is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
48
            return new Workflow;
49
        });
50
51
        $this->app->singleton('command.workflow', function ($app) {
0 ignored issues
show
Unused Code introduced by
The parameter $app is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
52
            return new WorkflowCommand;
53
        });
54
55
        $this->commands('command.workflow');
56
    }
57
58
    /**
59
     * Get the services provided by the provider.
60
     *
61
     * @return array
62
     */
63
    public function provides()
64
    {
65
        return [
66
            'workflow',
67
            'command.workflow',
68
        ];
69
    }
70
71
    /**
72
     * Loading package routes
73
     *
74
     * @return void
75
     */
76
    protected function routeHandle()
77
    {
78
        $this->loadRoutesFrom(__DIR__.'/routes/routes.php');
79
    }
80
81
    /**
82
     * Loading and publishing package's config
83
     *
84
     * @return void
85
     */
86
    protected function configHandle()
87
    {
88
        $packageConfigPath = __DIR__.'/config/config.php';
89
        $appConfigPath     = config_path('workflow.php');
90
91
        $this->mergeConfigFrom($packageConfigPath, 'workflow');
92
93
        $this->publishes([
94
            $packageConfigPath => $appConfigPath,
95
        ], 'config');
96
    }
97
98
    /**
99
     * Loading and publishing package's translations
100
     *
101
     * @return void
102
     */
103
    protected function langHandle()
104
    {
105
        $packageTranslationsPath = __DIR__.'/resources/lang';
106
107
        $this->loadTranslationsFrom($packageTranslationsPath, 'workflow');
108
109
        $this->publishes([
110
            $packageTranslationsPath => resource_path('lang/vendor/workflow'),
111
        ], 'lang');
112
    }
113
114
    /**
115
     * Loading and publishing package's views
116
     *
117
     * @return void
118
     */
119
    protected function viewHandle()
120
    {
121
        $packageViewsPath = __DIR__.'/resources/views';
122
123
        $this->loadViewsFrom($packageViewsPath, 'workflow');
124
125
        $this->publishes([
126
            $packageViewsPath => resource_path('views/'),
127
        ], 'workflow_views');
128
    }
129
130
    /**
131
     * Publishing package's assets (JavaScript, CSS, images...)
132
     *
133
     * @return void
134
     */
135
    protected function assetHandle()
136
    {
137
        $packageAssetsPath = __DIR__.'/resources/assets';
138
139
        $this->publishes([
140
            $packageAssetsPath => public_path('vendor/workflow'),
141
        ], 'public');
142
    }
143
144
    /**
145
     * Publishing package's migrations
146
     *
147
     * @return void
148
     */
149
    protected function migrationHandle()
150
    {
151
        $packageMigrationsPath = __DIR__.'/database/migrations';
152
153
        $this->loadMigrationsFrom($packageMigrationsPath);
154
155
        $this->publishes([
156
            $packageMigrationsPath => database_path('migrations')
157
        ], 'workflow_migrations');
158
    }
159
160
    public function cssHandle()
161
    {
162
        $packageMigrationsPath = __DIR__.'/public/css';                
163
164
        $this->publishes([
165
            $packageMigrationsPath => base_path('public/css')
166
        ], 'workflow_css');
167
    }
168
169
    public function jsHandle()
170
    {
171
        $packageMigrationsPath = __DIR__.'/public/js';                
172
173
        $this->publishes([
174
            $packageMigrationsPath => base_path('public/js')
175
        ], 'workflow_js');
176
    }
177
}
178