AchievementsServiceProvider::boot()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 10
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 10
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 6
nc 1
nop 0
1
<?php
2
3
namespace Laravel\Achievements\Providers;
4
5
use Illuminate\Support\ServiceProvider;
6
use Laravel\Achievements\AchievementsStorage;
7
use Zurbaev\Achievements\AchievementsManager;
8
use Zurbaev\Achievements\Contracts\AchievementsStorageInterface;
9
10
class AchievementsServiceProvider extends ServiceProvider
11
{
12
    /**
13
     * Bootstrap application services.
14
     */
15
    public function boot()
16
    {
17
        $this->loadMigrationsFrom(
18
            realpath(__DIR__.'/../../database/migrations')
19
        );
20
21
        $this->publishes([
22
            realpath(__DIR__.'/../../config/achievements.php') => config_path('achievements.php'),
23
        ], 'config');
24
    }
25
26
    /**
27
     * Register application services.
28
     */
29
    public function register()
30
    {
31
        $this->mergeConfigFrom(realpath(__DIR__.'/../../config/achievements.php'), 'achievements');
32
33
        $this->app->bind(AchievementsStorageInterface::class, AchievementsStorage::class);
34
35
        $this->app->singleton(AchievementsManager::class, function () {
36
            $storage = app(AchievementsStorageInterface::class);
37
38
            return new AchievementsManager($storage);
39
        });
40
    }
41
}
42