Tracker   A
last analyzed

Complexity

Total Complexity 16

Size/Duplication

Total Lines 133
Duplicated Lines 0 %

Coupling/Cohesion

Components 2
Dependencies 1

Test Coverage

Coverage 62.86%

Importance

Changes 0
Metric Value
wmc 16
lcom 2
cbo 1
dl 0
loc 133
ccs 22
cts 35
cp 0.6286
rs 10
c 0
b 0
f 0

14 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A getTrackingId() 0 4 1
A setTrackingId() 0 4 1
A getAlias() 0 4 1
A getCommandAlias() 0 4 2
A setAlias() 0 4 1
A isEnabled() 0 4 2
A setEnabled() 0 4 1
A setAllowLinker() 0 4 1
A isAllowLinker() 0 4 1
A setDomainName() 0 4 1
A getDomainName() 0 4 1
A isAnonymizeIp() 0 4 1
A setAnonymizeIp() 0 4 1
1
<?php
2
3
namespace ByTIC\GoogleAnalytics\Tracking\Data;
4
5
use ByTIC\GoogleAnalytics\Tracking\Data\Tracker\HasTransactionsTrait;
6
7
/**
8
 * Class Tracker
9
 * @package ByTIC\GoogleAnalytics\Tracking\Data
10
 */
11
class Tracker
12
{
13
    use HasTransactionsTrait;
14
15
    /**
16
     * Web property ID for Google Analytics
17
     *
18
     * @var string
19
     */
20
    protected $trackingId;
21
22
    protected $alias;
23
24
    protected $enableTracking = true;
25
26
    protected $allowLinker = false;
27
    protected $anonymizeIp = false;
28
29
    protected $domainName;
30
31
    /**
32
     * Tracker constructor.
33
     * @param string $trackingId
34
     */
35 5
    public function __construct($trackingId = null)
36
    {
37 5
        $this->trackingId = $trackingId;
38 5
    }
39
40
    /**
41
     * @return string
42
     */
43 3
    public function getTrackingId()
44
    {
45 3
        return $this->trackingId;
46
    }
47
48
    /**
49
     * @param string $trackingId
50
     */
51 2
    public function setTrackingId($trackingId)
52
    {
53 2
        $this->trackingId = $trackingId;
54 2
    }
55
56
    /**
57
     * @return mixed
58
     */
59 3
    public function getAlias()
60
    {
61 3
        return $this->alias;
62
    }
63
64
    /**
65
     * @return mixed
66
     */
67 2
    public function getCommandAlias()
68
    {
69 2
        return empty($this->alias) ? '' : $this->alias . '.';
70
    }
71
72
    /**
73
     * @param mixed $alias
74
     */
75 2
    public function setAlias($alias)
76
    {
77 2
        $this->alias = $alias;
78 2
    }
79
80
    /**
81
     * @return bool
82
     */
83
    public function isEnabled(): bool
84
    {
85
        return !empty($this->trackingId) && $this->enableTracking;
86
    }
87
88
    /**
89
     * @param bool $enableTracking
90
     */
91
    public function setEnabled(bool $enableTracking)
92
    {
93
        $this->enableTracking = $enableTracking;
94
    }
95
96
    /**
97
     * @param $allow_linker
98
     */
99 1
    public function setAllowLinker($allow_linker)
100
    {
101 1
        $this->allowLinker = (bool)$allow_linker;
102 1
    }
103
104
    /**
105
     * @return bool
106
     */
107 3
    public function isAllowLinker()
108
    {
109 3
        return $this->allowLinker;
110
    }
111
112
    /**
113
     * @param $domain_name
114
     */
115
    public function setDomainName($domain_name)
116
    {
117
        $this->domainName = (string)$domain_name;
118
    }
119
120
    /**
121
     * @return mixed
122
     */
123
    public function getDomainName()
124
    {
125
        return $this->domainName;
126
    }
127
128
    /**
129
     * @return bool
130
     */
131 3
    public function isAnonymizeIp(): bool
132
    {
133 3
        return $this->anonymizeIp;
134
    }
135
136
    /**
137
     * @param bool $anonymizeIp
138
     */
139
    public function setAnonymizeIp(bool $anonymizeIp)
140
    {
141
        $this->anonymizeIp = $anonymizeIp;
142
    }
143
}
144