Completed
Push — master ( 005d42...c6a537 )
by ARCANEDEV
9s
created

LaravelExcelServiceProvider   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 97
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 3

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
dl 0
loc 97
c 0
b 0
f 0
wmc 6
lcom 1
cbo 3
ccs 25
cts 25
cp 1
rs 10

6 Methods

Rating   Name   Duplication   Size   Complexity  
A getBasePath() 0 4 1
A register() 0 6 1
A boot() 0 4 1
A provides() 0 9 1
A registerExporter() 0 7 1
A registerImporter() 0 7 1
1
<?php namespace Arcanedev\LaravelExcel;
2
3
use Arcanedev\Support\PackageServiceProvider;
4
5
/**
6
 * Class     LaravelExcelServiceProvider
7
 *
8
 * @package  Arcanedev\LaravelExcel
9
 * @author   ARCANEDEV <[email protected]>
10
 */
11
class LaravelExcelServiceProvider extends PackageServiceProvider
12
{
13
    /* ------------------------------------------------------------------------------------------------
14
     |  Properties
15
     | ------------------------------------------------------------------------------------------------
16
     */
17
    /**
18
     * Package name.
19
     *
20
     * @var string
21
     */
22
    protected $package = 'laravel-excel';
23
24
    /**
25
     * Indicates if loading of the provider is deferred.
26
     *
27
     * @var bool
28
     */
29
    protected $defer = true;
30
31
    /* ------------------------------------------------------------------------------------------------
32
     |  Getters & Setters
33
     | ------------------------------------------------------------------------------------------------
34
     */
35
    /**
36
     * Get the base path of the package.
37
     *
38
     * @return string
39
     */
40 84
    public function getBasePath()
41
    {
42 84
        return dirname(__DIR__);
43
    }
44
45
    /* ------------------------------------------------------------------------------------------------
46
     |  Main Functions
47
     | ------------------------------------------------------------------------------------------------
48
     */
49
    /**
50
     * Register the service provider.
51
     */
52 84
    public function register()
53
    {
54 84
        $this->registerConfig();
55 84
        $this->registerExporter();
56 84
        $this->registerImporter();
57 84
    }
58
59
    /**
60
     * Boot the service provider.
61
     */
62 84
    public function boot()
63
    {
64
        //
65 84
    }
66
67
    /**
68
     * Get the services provided by the provider.
69
     *
70
     * @return array
71
     */
72 12
    public function provides()
73
    {
74
        return [
75 12
            'arcanedev.excel.exporter',
76 6
            Contracts\ExporterManager::class,
77 6
            'arcanedev.excel.importer',
78 6
            Contracts\ImporterManager::class,
79 6
        ];
80
    }
81
82
    /* ------------------------------------------------------------------------------------------------
83
     |  Other Functions
84
     | ------------------------------------------------------------------------------------------------
85
     */
86
    /**
87
     * Register the exporter manager.
88
     */
89 84
    private function registerExporter()
90
    {
91
        $this->singleton('arcanedev.excel.exporter', function ($app) {
92 24
            return new ExporterManager($app);
93 84
        });
94 84
        $this->bind(Contracts\ExporterManager::class, 'arcanedev.excel.exporter');
95 84
    }
96
97
    /**
98
     * Register the importer manager.
99
     */
100
    private function registerImporter()
101
    {
102 84
        $this->singleton('arcanedev.excel.importer', function ($app) {
103 24
            return new ImporterManager($app);
104 84
        });
105 84
        $this->bind(Contracts\ImporterManager::class, 'arcanedev.excel.importer');
106 84
    }
107
}
108