LaraflashServiceProvider   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 95
Duplicated Lines 0 %

Test Coverage

Coverage 87.5%

Importance

Changes 5
Bugs 1 Features 1
Metric Value
eloc 27
dl 0
loc 95
ccs 28
cts 32
cp 0.875
rs 10
c 5
b 1
f 1
wmc 6

6 Methods

Rating   Name   Duplication   Size   Complexity  
A configure() 0 5 1
A registerResources() 0 3 1
A offerPublishing() 0 9 1
A boot() 0 5 1
A register() 0 5 1
A registerBindings() 0 25 1
1
<?php
2
3
namespace Coderello\Laraflash\Providers;
4
5
use Coderello\Laraflash\FlashMessage\FlashMessageFactory;
6
use Coderello\Laraflash\FlashMessage\FlashMessageFactoryContract;
7
use Coderello\Laraflash\FlashMessage\FlashMessageRendererContract;
8
use Coderello\Laraflash\FlashMessage\ViewFlashMessageRenderer;
9
use Coderello\Laraflash\Laraflash\Laraflash;
10
use Coderello\Laraflash\Laraflash\LaraflashPreparer;
11
use Coderello\Laraflash\Laraflash\LaraflashPreparerContract;
12
use Coderello\Laraflash\Laraflash\LaraflashRenderer;
13
use Coderello\Laraflash\Laraflash\LaraflashRendererContract;
14
use Coderello\Laraflash\MessagesStorage\MessagesStorageContract;
15
use Coderello\Laraflash\MessagesStorage\MessagesStorageManager;
16
use Coderello\Laraflash\MessagesStorage\SessionMessagesStorage;
17
use Illuminate\Foundation\Application;
18
use Illuminate\Support\ServiceProvider;
19
20
class LaraflashServiceProvider extends ServiceProvider
21
{
22
    /**
23
     * Bootstrap any application services.
24
     *
25
     * @return void
26
     */
27 59
    public function boot()
28
    {
29 59
        $this->registerResources();
30
31 59
        $this->offerPublishing();
32
    }
33
34
    /**
35
     * Register any application services.
36
     *
37
     * @return void
38
     */
39 59
    public function register()
40
    {
41 59
        $this->registerBindings();
42
43 59
        $this->configure();
44
    }
45
46
    /**
47
     * Register the Laraflash bindings.
48
     *
49
     * @return void
50
     */
51 59
    protected function registerBindings()
52
    {
53 59
        $this->app->bind(MessagesStorageContract::class, SessionMessagesStorage::class);
54
55 59
        $this->app->bind(LaraflashRendererContract::class, LaraflashRenderer::class);
56
57 59
        $this->app->bind(FlashMessageRendererContract::class, ViewFlashMessageRenderer::class);
58
59 59
        $this->app->bind(LaraflashPreparerContract::class, LaraflashPreparer::class);
60
61 59
        $this->app->bind(FlashMessageFactoryContract::class, FlashMessageFactory::class);
62
63 59
        $this->app->singleton(MessagesStorageManager::class, function (Application $app) {
64
            return new MessagesStorageManager($app);
65
        });
66
67 59
        $this->app->bind(MessagesStorageContract::class, function (Application $app) {
68
            /** @var MessagesStorageManager $messagesStorageManager */
69
            $messagesStorageManager = $app->make(MessagesStorageManager::class);
70
71
            return $messagesStorageManager->driver();
72
        });
73
74 59
        $this->app->singleton('laraflash', function (Application $app) {
75
            return $app->make(Laraflash::class);
76
        });
77
    }
78
79
    /**
80
     * Setup the resource publishing groups for Laraflash.
81
     *
82
     * @return void
83
     */
84 59
    protected function offerPublishing()
85
    {
86 59
        $this->publishes([
87 59
            __DIR__.'/../../resources/views' => $this->app->resourcePath('views/vendor/laraflash'),
88 59
        ], 'laraflash-views');
89
90 59
        $this->publishes([
91 59
            __DIR__.'/../../config/laraflash.php' => $this->app->configPath('laraflash.php'),
92 59
        ], 'laraflash-config');
93
    }
94
95
    /**
96
     * Register the Laraflash resources.
97
     *
98
     * @return void
99
     */
100 59
    protected function registerResources()
101
    {
102 59
        $this->loadViewsFrom(__DIR__.'/../../resources/views/components/skins', 'laraflash_skin');
103
    }
104
105
    /**
106
     * Setup the configuration for Laraflash.
107
     *
108
     * @return void
109
     */
110 59
    protected function configure()
111
    {
112 59
        $this->mergeConfigFrom(
113 59
            __DIR__.'/../../config/laraflash.php',
114 59
            'laraflash'
115
        );
116
    }
117
}
118