Passed
Push — master ( 95c142...58f956 )
by Beau
02:43
created

Graph::__construct()   A

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 0
Metric Value
eloc 8
dl 0
loc 18
ccs 9
cts 9
cp 1
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 8
crap 1

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
declare(strict_types=1);
4
5
namespace Dflydev\FiniteStateMachine\Graph;
6
7
use Dflydev\FiniteStateMachine\Guard\GuardCollection;
8
use Dflydev\FiniteStateMachine\State\StateCollection;
9
use Dflydev\FiniteStateMachine\Transition\TransitionCollection;
10
use Dflydev\FiniteStateMachine\TransitionEvent\TransitionEventCollection;
11
12
class Graph
13
{
14
    private string $className;
15
    private string $graph;
16
    private array $objectProxyOptions;
17
    private array $metadata;
18
    private StateCollection $stateCollection;
19
    private TransitionCollection $transitionCollection;
20
    private GuardCollection $guardCollection;
21
    private TransitionEventCollection $transitionEventCollection;
22
23 21
    public function __construct(
24
        string $className,
25
        string $graph,
26
        array $objectProxyOptions,
27
        array $metadata,
28
        StateCollection $stateCollection,
29
        TransitionCollection $transitionCollection,
30
        GuardCollection $guardCollection,
31
        TransitionEventCollection $transitionEventCollection
32
    ) {
33 21
        $this->className = $className;
34 21
        $this->graph = $graph;
35 21
        $this->objectProxyOptions = $objectProxyOptions;
36 21
        $this->metadata = $metadata;
37 21
        $this->stateCollection = $stateCollection;
38 21
        $this->transitionCollection = $transitionCollection;
39 21
        $this->guardCollection = $guardCollection;
40 21
        $this->transitionEventCollection = $transitionEventCollection;
41 21
    }
42
43 21
    public function className(): string
44
    {
45 21
        return $this->className;
46
    }
47
48 21
    public function graph(): string
49
    {
50 21
        return $this->graph;
51
    }
52
53 19
    public function objectProxyOptions(): array
54
    {
55 19
        return $this->objectProxyOptions;
56
    }
57
58 1
    public function metadata(): array
59
    {
60 1
        return $this->metadata;
61
    }
62
63 19
    public function stateCollection(): StateCollection
64
    {
65 19
        return $this->stateCollection;
66
    }
67
68 19
    public function transitionCollection(): TransitionCollection
69
    {
70 19
        return $this->transitionCollection;
71
    }
72
73 19
    public function guardCollection(): GuardCollection
74
    {
75 19
        return $this->guardCollection;
76
    }
77
78 19
    public function transitionEventCollection(): TransitionEventCollection
79
    {
80 19
        return $this->transitionEventCollection;
81
    }
82
}
83