RouteServiceProvider::boot()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 1
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 3
rs 10
1
<?php
2
3
namespace Modules\Core\Providers;
4
5
use Illuminate\Console\Scheduling\Schedule;
6
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
7
use Illuminate\Support\Facades\Event;
8
use Illuminate\Support\Facades\Route;
9
10
class RouteServiceProvider extends ServiceProvider
11
{
12
    /**
13
     * The root namespace to assume when generating URLs to actions.
14
     *
15
     * @var string
16
     */
17
    protected $namespace = 'Modules\Core\Http\Controllers';
18
19
    /**
20
     * Called before routes are registered.
21
     *
22
     * Register any model bindings or pattern based filters.
23
     *
24
     * @return void
25
     */
26
    public function boot()
27
    {
28
        parent::boot();
29
    }
30
31
    /**
32
     * Define the routes for the application.
33
     *
34
     * @return void
35
     */
36
    public function map()
37
    {
38
        $this->mapApiRoutes();
39
40
        $this->mapWebRoutes();
41
42
        $this->mapCommandRoutes();
43
44
        $this->mapScheduleRoutes();
45
46
        $this->mapEventListenRoutes();
47
48
        $this->mapEventSubscribeRoutes();
49
50
        $this->mapMiddlewareRoutes();
51
    }
52
53
    /**
54
     * Define the "web" routes for the application.
55
     *
56
     * These routes all receive session state, CSRF protection, etc.
57
     *
58
     * @return void
59
     */
60
    protected function mapWebRoutes()
61
    {
62
        Route::middleware('web')
63
             ->namespace($this->namespace)
64
             ->group(__DIR__.'/../Routes/web.php');
65
    }
66
67
    /**
68
     * Define the "api" routes for the application.
69
     *
70
     * These routes are typically stateless.
71
     *
72
     * @return void
73
     */
74
    protected function mapApiRoutes()
75
    {
76
        Route::prefix('api')
77
             ->middleware('api')
78
             ->namespace($this->namespace)
79
             ->group(__DIR__.'/../Routes/api.php');
80
    }
81
82
    /**
83
     * Define the "console" routes for the application.
84
     *
85
     * These routes are console commands.
86
     *
87
     * @return void
88
     */
89
    protected function mapCommandRoutes()
90
    {
91
        $commands = require __DIR__.'/../Routes/console.php';
92
        $this->commands($commands);
93
    }
94
95
    /**
96
     * Define the "schedule" routes for the application.
97
     *
98
     * These routes are schedules.
99
     *
100
     * @return void
101
     */
102
    protected function mapScheduleRoutes()
103
    {
104
        $schedule = $this->app->make(Schedule::class);
105
        $closure = require __DIR__.'/../Routes/schedule.php';
106
107
        $closure($schedule);
108
    }
109
110
    /**
111
     * Define the "event listen" routes for the application.
112
     *
113
     * These routes are event listen.
114
     *
115
     * @return void
116
     */
117
    protected function mapEventListenRoutes()
118
    {
119
        $listens = require __DIR__.'/../Routes/event/listen.php';
120
121
        foreach ($listens as $event => $listeners) {
122
            foreach ($listeners as $listener) {
123
                Event::listen($event, $listener);
124
            }
125
        }
126
    }
127
128
    /**
129
     * Define the "event subscribe" routes for the application.
130
     *
131
     * These routes are event subscribe.
132
     *
133
     * @return void
134
     */
135
    protected function mapEventSubscribeRoutes()
136
    {
137
        $subscribes = require __DIR__.'/../Routes/event/subscribe.php';
138
139
        foreach ($subscribes as $subscriber) {
140
            Event::subscribe($subscriber);
141
        }
142
    }
143
144
    /**
145
     * Define the "middleware" routes for the application.
146
     *
147
     * These routes are middleware.
148
     *
149
     * @return void
150
     */
151
    protected function mapMiddlewareRoutes()
152
    {
153
        $router = $this->app['router'];
154
        $method = method_exists($router, 'aliasMiddleware') ? 'aliasMiddleware' : 'middleware';
155
        $middlewares = require __DIR__.'/../Routes/middleware.php';
156
157
        foreach ($middlewares as $alias => $middleware) {
158
            $router->$method($alias, $middleware);
159
        }
160
    }
161
}
162