DataTablesServiceProvider::_setDataTableAlias()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 2
nc 1
nop 0
dl 0
loc 4
ccs 2
cts 2
cp 1
crap 1
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace hamburgscleanest\DataTables;
4
5
use hamburgscleanest\DataTables\Facades\DataTable as DataTableFacade;
6
use hamburgscleanest\DataTables\Helpers\SessionHelper;
7
use hamburgscleanest\DataTables\Helpers\TableRenderer;
8
use hamburgscleanest\DataTables\Helpers\UrlHelper;
9
use hamburgscleanest\DataTables\Models\DataTable;
10
use Illuminate\Foundation\AliasLoader;
11
use Illuminate\Support\ServiceProvider;
12
13
/**
14
 * Class DataTablesServiceProvider
15
 * @package hamburgscleanest\DataTables
16
 */
17
class DataTablesServiceProvider extends ServiceProvider {
18
19
    /**
20
     * Perform post-registration booting of services.
21
     *
22
     * @return void
23
     */
24 91
    public function boot() : void
25
    {
26
27 91
    }
28
29
    /**
30
     * Register any package services.
31
     *
32
     * @return void
33
     */
34 91
    public function register() : void
35
    {
36 91
        $this->_registerDataTable();
37 91
        $this->_registerSessionHelper();
38 91
        $this->_registerUrlHelper();
39 91
        $this->_registerTableRenderer();
40
41 91
        if (\strncmp($this->app->version(), '5.5.', 4) === - 1)
42
        {
43 91
            $this->_setDataTableAlias();
44
        }
45 91
    }
46
47 91
    private function _registerDataTable() : void
48
    {
49
        $this->app->bind('datatable', function() {
50 75
            return new DataTable();
51 91
        });
52 91
    }
53
54 91
    private function _registerSessionHelper() : void
55
    {
56
        $this->app->singleton('session_helper', function() {
57 36
            return new SessionHelper();
58 91
        });
59 91
    }
60
61 91
    private function _registerUrlHelper() : void
62
    {
63
        $this->app->singleton('url_helper', function() {
64 16
            return new UrlHelper();
65 91
        });
66 91
    }
67
68 91
    private function _registerTableRenderer() : void
69
    {
70
        $this->app->singleton('table_renderer', function() {
71 46
            return new TableRenderer();
72 91
        });
73 91
    }
74
75
    private function _setDataTableAlias() : void
76
    {
77 91
        $this->app->booting(function() {
78 91
            AliasLoader::getInstance()->alias('DataTable', DataTableFacade::class);
79 91
        });
80
    }
81
}