Completed
Push — master ( f1bd54...a11f6e )
by Tobias
02:37
created

Config::getLicenseKey()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 0
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
/*
6
 * This file is part of Ekino New Relic bundle.
7
 *
8
 * (c) Ekino - Thomas Rabaix <[email protected]>
9
 *
10
 * For the full copyright and license information, please view the LICENSE
11
 * file that was distributed with this source code.
12
 */
13
14
namespace Ekino\Bundle\NewRelicBundle\NewRelic;
15
16
/**
17
 * This value object contains data and configuration that should be passed to the interactors.
18
 */
19
class Config
20
{
21
    private $name;
22
    private $apiKey;
23
    private $licenseKey;
24
    private $xmit;
25
    private $customEvents;
26
    private $customMetrics;
27
    private $customParameters;
28
    private $deploymentNames;
29
30
    public function __construct(string $name, string $apiKey, string $licenseKey = null, bool $xmit = false, array $deploymentNames = [])
31
    {
32
        $this->name = !empty($name) ? $name : ini_get('newrelic.appname') ?: '';
33
        $this->apiKey = $apiKey;
34
        $this->licenseKey = !empty($licenseKey) ? $licenseKey : ini_get('newrelic.license') ?: '';
35
        $this->xmit = $xmit;
36
        $this->deploymentNames = $deploymentNames;
37
        $this->customEvents = [];
38
        $this->customMetrics = [];
39
        $this->customParameters = [];
40
    }
41
42
    public function setCustomEvents(array $customEvents): void
43
    {
44
        $this->customEvents = $customEvents;
45
    }
46
47
    public function getCustomEvents(): array
48
    {
49
        return $this->customEvents;
50
    }
51
52
    public function addCustomEvent(string $name, array $attributes): void
53
    {
54
        $this->customEvents[$name][] = $attributes;
55
    }
56
57
    public function setCustomMetrics(array $customMetrics): void
58
    {
59
        $this->customMetrics = $customMetrics;
60
    }
61
62
    public function getCustomMetrics(): array
63
    {
64
        return $this->customMetrics;
65
    }
66
67
    public function setCustomParameters(array $customParameters): void
68
    {
69
        $this->customParameters = $customParameters;
70
    }
71
72
    /**
73
     * @param string           $name
74
     * @param string|int|float $value or any scalar value
75
     */
76
    public function addCustomParameter(string $name, $value): void
77
    {
78
        $this->customParameters[$name] = $value;
79
    }
80
81
    public function addCustomMetric(string $name, float $value): void
82
    {
83
        $this->customMetrics[$name] = $value;
84
    }
85
86
    public function getCustomParameters(): array
87
    {
88
        return $this->customParameters;
89
    }
90
91
    public function getName(): string
92
    {
93
        return $this->name;
94
    }
95
96
    /**
97
     * @return string[]
98
     */
99
    public function getDeploymentNames(): array
100
    {
101
        return $this->deploymentNames;
102
    }
103
104
    public function getApiKey(): string
105
    {
106
        return $this->apiKey;
107
    }
108
109
    public function getLicenseKey(): ?string
110
    {
111
        return $this->licenseKey;
112
    }
113
114
    public function getXmit(): bool
115
    {
116
        return $this->xmit;
117
    }
118
}
119