Completed
Push — master ( 4a7a7a...e0de0e )
by Fabian
02:25
created

TickerModel::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 22
Code Lines 10

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 11
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 10
nc 1
nop 10
dl 0
loc 22
ccs 11
cts 11
cp 1
crap 1
rs 9.2
c 0
b 0
f 0

How to fix   Many Parameters   

Many Parameters

Methods with many parameters are not only hard to understand, but their parameters also often become inconsistent when you need more, or different data.

There are several approaches to avoid long parameter lists:

1
<?php
2
/**
3
 * @author  Fabian Hanisch
4
 * @since   17.07.2017 20:34
5
 * @version 1.0
6
 */
7
8
namespace HanischIt\KrakenApi\Model\GetTicker;
9
10
/**
11
 * Class TickerModel
12
 *
13
 * @package HanischIt\KrakenApi\Model\GetTicker
14
 */
15
class TickerModel
16
{
17
    /**
18
     * @var string
19
     */
20
    private $assetPair;
21
    /**
22
     * @var AskBidModel
23
     */
24
    private $ask;
25
    /**
26
     * @var AskBidModel
27
     */
28
    private $bid;
29
    /**
30
     * @var
31
     */
32
    private $lastTradeClosed;
33
    /**
34
     * @var DayPriceModel
35
     */
36
    private $volume;
37
    /**
38
     * @var DayPriceModel
39
     */
40
    private $volumeWeightedAverage;
41
    /**
42
     * @var DayPriceModel
43
     */
44
    private $numberOfTrades;
45
    /**
46
     * @var DayPriceModel
47
     */
48
    private $low;
49
    /**
50
     * @var DayPriceModel
51
     */
52
    private $high;
53
    /**
54
     * @var float
55
     */
56
    private $todaysOpeningPrice;
57
58
    /**
59
     * TickerModel constructor.
60
     *
61
     * @param string           $assetPair
62
     * @param AskBidModel      $ask
63
     * @param AskBidModel      $bid
64
     * @param PriceVolumeModel $lastTradeClosed
65
     * @param DayPriceModel    $volume
66
     * @param DayPriceModel    $volumeWeightedAverage
67
     * @param DayPriceModel    $numberOfTrades
68
     * @param DayPriceModel    $low
69
     * @param DayPriceModel    $high
70
     * @param float            $todaysOpeningPrice
71
     */
72 2
    public function __construct(
73
        $assetPair,
74
        AskBidModel $ask,
75
        AskBidModel $bid,
76
        PriceVolumeModel $lastTradeClosed,
77
        DayPriceModel $volume,
78
        DayPriceModel $volumeWeightedAverage,
79
        DayPriceModel $numberOfTrades,
80
        DayPriceModel $low,
81
        DayPriceModel $high,
82
        $todaysOpeningPrice
83
    ) {
84 2
        $this->assetPair = $assetPair;
85 2
        $this->ask = $ask;
86 2
        $this->bid = $bid;
87 2
        $this->lastTradeClosed = $lastTradeClosed;
88 2
        $this->volume = $volume;
89 2
        $this->volumeWeightedAverage = $volumeWeightedAverage;
90 2
        $this->numberOfTrades = $numberOfTrades;
91 2
        $this->low = $low;
92 2
        $this->high = $high;
93 2
        $this->todaysOpeningPrice = $todaysOpeningPrice;
94 2
    }
95
96
    /**
97
     * @return AskBidModel
98
     */
99 1
    public function getAsk()
100
    {
101 1
        return $this->ask;
102
    }
103
104
    /**
105
     * @return AskBidModel
106
     */
107 1
    public function getBid()
108
    {
109 1
        return $this->bid;
110
    }
111
112
    /**
113
     * @return mixed
114
     */
115 1
    public function getLastTradeClosed()
116
    {
117 1
        return $this->lastTradeClosed;
118
    }
119
120
    /**
121
     * @return DayPriceModel
122
     */
123 1
    public function getVolume()
124
    {
125 1
        return $this->volume;
126
    }
127
128
    /**
129
     * @return DayPriceModel
130
     */
131 1
    public function getVolumeWeightedAverage()
132
    {
133 1
        return $this->volumeWeightedAverage;
134
    }
135
136
    /**
137
     * @return DayPriceModel
138
     */
139 1
    public function getNumberOfTrades()
140
    {
141 1
        return $this->numberOfTrades;
142
    }
143
144
    /**
145
     * @return DayPriceModel
146
     */
147 1
    public function getLow()
148
    {
149 1
        return $this->low;
150
    }
151
152
    /**
153
     * @return DayPriceModel
154
     */
155 1
    public function getHigh()
156
    {
157 1
        return $this->high;
158
    }
159
160
    /**
161
     * @return float
162
     */
163 1
    public function getTodaysOpeningPrice()
164
    {
165 1
        return $this->todaysOpeningPrice;
166
    }
167
}
168