Completed
Push — master ( 2ff1b0...b38f5c )
by ARCANEDEV
18:09 queued 07:56
created

BindingManager   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 98
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 0

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 2
lcom 0
cbo 0
dl 0
loc 98
ccs 4
cts 4
cp 1
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A getModelsBindings() 0 4 1
A getTrackersBindings() 0 4 1
1
<?php namespace Arcanedev\LaravelTracker\Support;
2
3
use Arcanedev\LaravelTracker\Contracts\Models as ModelContracts;
4
use Arcanedev\LaravelTracker\Contracts\Trackers as TrackerContracts;
5
use Arcanedev\LaravelTracker\Trackers;
6
7
/**
8
 * Class     BindingManager
9
 *
10
 * @package  Arcanedev\LaravelTracker\Support
11
 * @author   ARCANEDEV <[email protected]>
12
 */
13
class BindingManager
14
{
15
    /* ------------------------------------------------------------------------------------------------
16
     |  Constants
17
     | ------------------------------------------------------------------------------------------------
18
     */
19
    const MODEL_AGENT                = 'agent';
20
    const MODEL_COOKIE               = 'cookie';
21
    const MODEL_DEVICE               = 'device';
22
    const MODEL_DOMAIN               = 'domain';
23
    const MODEL_ERROR                = 'error';
24
    const MODEL_GEOIP                = 'geoip';
25
    const MODEL_LANGUAGE             = 'language';
26
    const MODEL_PATH                 = 'path';
27
    const MODEL_QUERY                = 'query';
28
    const MODEL_REFERER              = 'referer';
29
    const MODEL_REFERER_SEARCH_TERM  = 'referer-search-term';
30
    const MODEL_ROUTE                = 'route';
31
    const MODEL_ROUTE_PATH           = 'route-path';
32
    const MODEL_ROUTE_PATH_PARAMETER = 'route-path-parameter';
33
    const MODEL_SESSION              = 'session';
34
    const MODEL_SESSION_ACTIVITY     = 'session-activity';
35
    const MODEL_USER                 = 'user';
36
37
    /* ------------------------------------------------------------------------------------------------
38
     |  Properties
39
     | ------------------------------------------------------------------------------------------------
40
     */
41
    /**
42
     * Models bindings.
43
     *
44
     * @var array
45
     */
46
    protected static $models = [
47
        self::MODEL_AGENT                => ModelContracts\Agent::class,
48
        self::MODEL_COOKIE               => ModelContracts\Cookie::class,
49
        self::MODEL_DEVICE               => ModelContracts\Device::class,
50
        self::MODEL_DOMAIN               => ModelContracts\Domain::class,
51
        self::MODEL_ERROR                => ModelContracts\Error::class,
52
        self::MODEL_GEOIP                => ModelContracts\GeoIp::class,
53
        self::MODEL_LANGUAGE             => ModelContracts\Language::class,
54
        self::MODEL_PATH                 => ModelContracts\Path::class,
55
        self::MODEL_QUERY                => ModelContracts\Query::class,
56
        self::MODEL_REFERER              => ModelContracts\Referer::class,
57
        self::MODEL_REFERER_SEARCH_TERM  => ModelContracts\RefererSearchTerm::class,
58
        self::MODEL_ROUTE                => ModelContracts\Route::class,
59
        self::MODEL_ROUTE_PATH           => ModelContracts\RoutePath::class,
60
        self::MODEL_ROUTE_PATH_PARAMETER => ModelContracts\RoutePathParameter::class,
61
        self::MODEL_SESSION              => ModelContracts\Session::class,
62
        self::MODEL_SESSION_ACTIVITY     => ModelContracts\SessionActivity::class,
63
        self::MODEL_USER                 => ModelContracts\User::class,
64
    ];
65
66
    /**
67
     * Trackers bindings.
68
     *
69
     * @var array
70
     */
71
    protected static $trackers = [
72
        TrackerContracts\CookieTracker::class          => Trackers\CookieTracker::class,
73
        TrackerContracts\DeviceTracker::class          => Trackers\DeviceTracker::class,
74
        TrackerContracts\ErrorTracker::class           => Trackers\ErrorTracker::class,
75
        TrackerContracts\GeoIpTracker::class           => Trackers\GeoIpTracker::class,
76
        TrackerContracts\LanguageTracker::class        => Trackers\LanguageTracker::class,
77
        TrackerContracts\PathTracker::class            => Trackers\PathTracker::class,
78
        TrackerContracts\QueryTracker::class           => Trackers\QueryTracker::class,
79
        TrackerContracts\RefererTracker::class         => Trackers\RefererTracker::class,
80
        TrackerContracts\RouteTracker::class           => Trackers\RouteTracker::class,
81
        TrackerContracts\SessionTracker::class         => Trackers\SessionTracker::class,
82
        TrackerContracts\SessionActivityTracker::class => Trackers\SessionActivityTracker::class,
83
        TrackerContracts\UserAgentTracker::class       => Trackers\UserAgentTracker::class,
84
        TrackerContracts\UserTracker::class            => Trackers\UserTracker::class,
85
    ];
86
87
    /* ------------------------------------------------------------------------------------------------
88
     |  Getters & Setters
89
     | ------------------------------------------------------------------------------------------------
90
     */
91
    /**
92
     * Get the models bindings.
93
     *
94
     * @return array
95
     */
96 234
    public static function getModelsBindings()
97
    {
98 234
        return self::$models;
99
    }
100
101
    /**
102
     * Get the trackers bindings.
103
     *
104
     * @return array
105
     */
106 234
    public static function getTrackersBindings()
107
    {
108 234
        return self::$trackers;
109
    }
110
}
111