AchievementsServiceProvider   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 32
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 3

Importance

Changes 0
Metric Value
wmc 2
lcom 1
cbo 3
dl 0
loc 32
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A boot() 0 10 1
A register() 0 12 1
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