Passed
Push — master ( a4037f...e3e9e9 )
by Christopher
01:15
created

ElasticsearchServiceProvider::register()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 20
Code Lines 10

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 8
CRAP Score 1.008

Importance

Changes 0
Metric Value
eloc 10
dl 0
loc 20
ccs 8
cts 10
cp 0.8
rs 9.9332
c 0
b 0
f 0
cc 1
nc 1
nop 0
crap 1.008
1
<?php
2
namespace Triadev\Es\Provider;
3
4
use Triadev\Es\Console\Commands\Index\Create as CreateIndex;
5
use Triadev\Es\Console\Commands\Index\Delete as DeleteIndex;
6
use Triadev\Es\Console\Commands\Alias\Create as CreateAlias;
7
use Triadev\Es\Console\Commands\Alias\Delete as DeleteAlias;
8
use Triadev\Es\Console\Commands\Migration\Deploy;
9
use Triadev\Es\Console\Commands\Migration\Reindex;
10
use Triadev\Es\Console\Commands\Version\Overview;
11
use Triadev\Es\Contract\ElasticsearchAliasContract;
12
use Triadev\Es\Contract\ElasticsearchDocumentContract;
13
use Triadev\Es\Contract\ElasticsearchIndexContract;
14
use Triadev\Es\Contract\ElasticsearchMappingContract;
15
use Triadev\Es\Contract\ElasticsearchSearchContract;
16
use Triadev\Es\ElasticsearchAlias;
17
use Triadev\Es\ElasticsearchDocument;
18
use Triadev\Es\ElasticsearchIndex;
19
use Triadev\Es\ElasticsearchMapping;
20
use Illuminate\Support\ServiceProvider;
21
use Triadev\Es\ElasticsearchSearch;
22
23
class ElasticsearchServiceProvider extends ServiceProvider
24
{
25
    /**
26
     * Bootstrap the application events.
27
     *
28
     * @return void
29
     */
30 30
    public function boot()
31
    {
32 30
        $source = realpath(__DIR__ . '/../Config/config.php');
33
34 30
        $this->publishes([
35 30
            __DIR__ . '/../Config/config.php' => config_path('triadev-elasticsearch.php'),
36 30
        ], 'config');
37
38 30
        $this->mergeConfigFrom($source, 'triadev-elasticsearch');
39
        
40 30
        if ($this->app->runningInConsole()) {
41 30
            $this->commands([
42 30
                CreateIndex::class,
43
                DeleteIndex::class,
44
                CreateAlias::class,
45
                DeleteAlias::class,
46
                Overview::class,
47
                Deploy::class,
48
                Reindex::class,
49
            ]);
50
        }
51 30
    }
52
53
    /**
54
     * Register bindings in the container.
55
     *
56
     * @return void
57
     */
58 30
    public function register()
59
    {
60
        $this->app->singleton(ElasticsearchIndexContract::class, function () {
61 19
            return app()->make(ElasticsearchIndex::class);
62 30
        });
63
    
64
        $this->app->singleton(ElasticsearchAliasContract::class, function () {
65 4
            return app()->make(ElasticsearchAlias::class);
66 30
        });
67
    
68
        $this->app->singleton(ElasticsearchDocumentContract::class, function () {
69 9
            return app()->make(ElasticsearchDocument::class);
70 30
        });
71
    
72
        $this->app->singleton(ElasticsearchSearchContract::class, function () {
73
            return app()->make(ElasticsearchSearch::class);
74 30
        });
75
    
76
        $this->app->singleton(ElasticsearchMappingContract::class, function () {
77
            return app()->make(ElasticsearchMapping::class);
78 30
        });
79 30
    }
80
}
81