Otros::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 18
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 9
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 8
c 1
b 0
f 0
nc 1
nop 8
dl 0
loc 18
ccs 9
cts 9
cp 1
crap 1
rs 10

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 declare(strict_types=1);
2
3
namespace src\sustancias;
4
5
use src\interfaces\PreguntaInterface;
6
7
/**
8
 * Clase Otros
9
 */
10
class Otros
11
{
12
    /**
13
     *
14
     * @var PreguntaInterface
15
     */
16
    private PreguntaInterface $_preguntaUno;
17
    /**
18
     *
19
     * @var PreguntaInterface
20
     */
21
    private PreguntaInterface $_preguntaDos;
22
    /**
23
     *
24
     * @var PreguntaInterface
25
     */
26
    private PreguntaInterface $_preguntaTres;
27
    /**
28
     *
29
     * @var PreguntaInterface
30
     */
31
    private PreguntaInterface $_preguntaCuatro;
32
33
    /**
34
     *
35
     * @var PreguntaInterface
36
     */
37
38
    private PreguntaInterface $_preguntaCinco;
39
    /**
40
     *
41
     * @var PreguntaInterface
42
     */
43
    private PreguntaInterface $_preguntaSeis;
44
    /**
45
     *
46
     * @var PreguntaInterface
47
     */
48
    private PreguntaInterface $_preguntaSiete;
49
50
    /**
51
     *
52
     * @var string
53
     */
54
    private string $_nombre = 'Otros';
55
    
56
    /**
57
     *
58
     * @param PreguntaInterface $preguntaUno
59
     * @param PreguntaInterface $preguntaDos
60
     * @param PreguntaInterface $preguntaTres
61
     * @param PreguntaInterface $preguntaCuatro
62
     * @param PreguntaInterface $preguntaCinco
63
     * @param PreguntaInterface $preguntaSeis
64
     * @param PreguntaInterface $preguntaSiete
65
     */
66 11
    public function __construct(
67
        PreguntaInterface $preguntaUno,
68
        PreguntaInterface $preguntaDos,
69
        PreguntaInterface $preguntaTres,
70
        PreguntaInterface $preguntaCuatro,
71
        PreguntaInterface $preguntaCinco,
72
        PreguntaInterface $preguntaSeis,
73
        PreguntaInterface $preguntaSiete,
74
        string $nombre
75
    ) {
76 11
        $this->_preguntaUno = $preguntaUno;
77 11
        $this->_preguntaDos = $preguntaDos;
78 11
        $this->_preguntaTres = $preguntaTres;
79 11
        $this->_preguntaCuatro = $preguntaCuatro;
80 11
        $this->_preguntaCinco = $preguntaCinco;
81 11
        $this->_preguntaSeis = $preguntaSeis;
82 11
        $this->_preguntaSiete = $preguntaSiete;
83 11
        $this->_nombre = $nombre;
84 11
    }
85
86
    /**
87
     *
88
     * @return PreguntaInterface
89
     */
90 2
    public function preguntaUno(): PreguntaInterface
91
    {
92 2
        return $this->_preguntaUno;
93
    }
94
    
95
    /**
96
     *
97
     * @return PreguntaInterface
98
     */
99 2
    public function preguntaDos(): PreguntaInterface
100
    {
101 2
        return $this->_preguntaDos;
102
    }
103
104
    /**
105
     *
106
     * @return PreguntaInterface
107
     */
108 2
    public function preguntaTres(): PreguntaInterface
109
    {
110 2
        return $this->_preguntaTres;
111
    }
112
113
    /**
114
     *
115
     * @return PreguntaInterface
116
     */
117 2
    public function preguntaCuatro(): PreguntaInterface
118
    {
119 2
        return $this->_preguntaCuatro;
120
    }
121
122
    /**
123
     *
124
     * @return PreguntaInterface
125
     */
126 2
    public function preguntaCinco(): PreguntaInterface
127
    {
128 2
        return $this->_preguntaCinco;
129
    }
130
131
    /**
132
     *
133
     * @return PreguntaInterface
134
     */
135 2
    public function preguntaSeis(): PreguntaInterface
136
    {
137 2
        return $this->_preguntaSeis;
138
    }
139
140
    /**
141
     *
142
     * @return PreguntaInterface
143
     */
144 2
    public function preguntaSiete(): PreguntaInterface
145
    {
146 2
        return $this->_preguntaSiete;
147
    }
148
149
    /**
150
     *
151
     * @return string
152
     */
153 2
    public function nombre(): string
154
    {
155 2
        return $this->_nombre;
156
    }
157
}
158