DiscussionsServiceProvider::routeConfiguration()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 7
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
3
namespace Faithgen\Discussions;
4
5
use Faithgen\Discussions\Models\Discussion;
6
use Faithgen\Discussions\Observers\DiscussionObserver;
7
use Faithgen\Discussions\Services\DiscussionService;
8
use FaithGen\SDK\Traits\ConfigTrait;
9
use Illuminate\Support\ServiceProvider;
10
11
class DiscussionsServiceProvider extends ServiceProvider
12
{
13
    use ConfigTrait;
14
15
    /**
16
     * Bootstrap the application services.
17
     */
18
    public function boot()
19
    {
20
        $this->registerRoutes(__DIR__.'/../routes/discussions.php', __DIR__.'/../routes/source.php');
21
22
        $this->setUpSourceFiles(function () {
23
            $this->loadMigrationsFrom(__DIR__.'/../database/migrations');
24
25
            $this->publishes([
26
                __DIR__.'/../config/config.php' => config_path('discussions.php'),
27
            ], 'faithgen-discussions-config');
28
29
            $this->publishes([
30
                __DIR__.'/../database/migrations' => database_path('migrations'),
31
            ], 'faithgen-discussions-migrations');
32
33
            $this->loadFactoriesFrom(__DIR__.'/../database/factories');
34
        });
35
36
        $this->publishes([
37
            __DIR__.'/../storage' => storage_path('app/public'),
38
        ], 'faithgen-discussions-storage');
39
40
        Discussion::observe(DiscussionObserver::class);
41
    }
42
43
    /**
44
     * Register the application services.
45
     */
46
    public function register()
47
    {
48
        // Automatically apply the package configuration
49
        $this->mergeConfigFrom(__DIR__.'/../config/config.php', 'faithgen-discussions');
50
51
        $this->app->singleton(DiscussionService::class);
52
53
        // Register the main class to use with the facade
54
        $this->app->singleton('discussions', function () {
55
            return new Discussions;
56
        });
57
    }
58
59
    public function routeConfiguration(): array
60
    {
61
        return [
62
            'prefix'     => config('faithgen-discussions.prefix'),
63
            'middleware' => config('faithgen-discussions.middlewares'),
64
        ];
65
    }
66
}
67