ServiceProvider::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 RichanFongdasen\Varnishable;
4
5
use GuzzleHttp\Client;
6
use Illuminate\Support\ServiceProvider as Provider;
7
8
class ServiceProvider extends Provider
9
{
10
    /**
11
     * Bootstrap the application services.
12
     *
13
     * @return void
14
     */
15
    public function boot(): void
16
    {
17
        $this->publishes([
18
            realpath(dirname(__DIR__).'/config/varnishable.php') => config_path('varnishable.php'),
19
        ], 'config');
20
    }
21
22
    /**
23
     * Register the application services.
24
     *
25
     * @return void
26
     */
27
    public function register(): void
28
    {
29
        $configPath = realpath(dirname(__DIR__).'/config/varnishable.php');
30
31
        if ($configPath !== false) {
32
            $this->mergeConfigFrom($configPath, 'varnishable');
33
        }
34
35
        $this->app->singleton(VarnishableService::class, function (): VarnishableService {
36
            return new VarnishableService(new Client());
37
        });
38
39
        $this->app->singleton(VarnishableObserver::class, function (): VarnishableObserver {
40
            return new VarnishableObserver();
41
        });
42
    }
43
}
44