StatServiceProvider::boot()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 6
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
3
namespace SchulzeFelix\Stat;
4
5
use Illuminate\Support\ServiceProvider;
6
use SchulzeFelix\Stat\Exceptions\InvalidConfiguration;
7
8
class StatServiceProvider extends ServiceProvider
9
{
10
    /**
11
     * Perform post-registration booting of services.
12
     *
13
     * @return void
14
     */
15
    public function boot()
16
    {
17
        $this->publishes([
18
            __DIR__.'/config/laravel-stat-search-analytics.php' => config_path('laravel-stat-search-analytics.php'),
19
        ], 'config');
20
    }
21
22
    /**
23
     * Register any package services.
24
     *
25
     * @return void
26
     */
27
    public function register()
28
    {
29
        $this->mergeConfigFrom(__DIR__.'/config/laravel-stat-search-analytics.php', 'laravel-stat-search-analytics');
30
31
        $statConfig = config('laravel-stat-search-analytics');
32
33
        $this->app->bind(StatClient::class, function () use ($statConfig) {
34
            if (empty($statConfig['key'])) {
35
                throw InvalidConfiguration::keyNotSpecified();
36
            }
37
38
            return StatClientFactory::createForConfig($statConfig);
39
        });
40
41
        $this->app->bind(Stat::class, function () {
42
            $client = app(StatClient::class);
43
44
            return new Stat($client);
45
        });
46
47
        $this->app->alias(Stat::class, 'laravel-stat-search-analytics');
48
    }
49
}
50