ArrayOfInt   A
last analyzed

Complexity

Total Complexity 13

Size/Duplication

Total Lines 139
Duplicated Lines 100 %

Coupling/Cohesion

Components 1
Dependencies 0

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
wmc 13
lcom 1
cbo 0
dl 139
loc 139
ccs 0
cts 52
cp 0
rs 10
c 0
b 0
f 0

13 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 4 4 1
A getInt() 4 4 1
A setInt() 5 5 1
A offsetExists() 4 4 1
A offsetGet() 4 4 1
A offsetSet() 4 4 1
A offsetUnset() 4 4 1
A current() 4 4 1
A next() 4 4 1
A key() 4 4 1
A valid() 4 4 1
A rewind() 4 4 1
A count() 4 4 1

How to fix   Duplicated Code   

Duplicated Code

Duplicate code is one of the most pungent code smells. A rule that is often used is to re-structure code once it is duplicated in three or more places.

Common duplication problems, and corresponding solutions are:

1
<?php
2
3
namespace Gueststream\PMS\IQWare\API;
4
5 View Code Duplication
class ArrayOfInt implements \ArrayAccess, \Iterator, \Countable
0 ignored issues
show
Duplication introduced by
This class seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
6
{
7
8
    /**
9
     * @var int[] $int
10
     */
11
    protected $int = null;
12
13
    
14
    public function __construct()
15
    {
16
    
17
    }
18
19
    /**
20
     * @return int[]
21
     */
22
    public function getInt()
23
    {
24
        return $this->int;
25
    }
26
27
    /**
28
     * @param int[] $int
29
     * @return \Gueststream\PMS\IQWare\API\ArrayOfInt
30
     */
31
    public function setInt(array $int = null)
32
    {
33
        $this->int = $int;
0 ignored issues
show
Documentation Bug introduced by
It seems like $int can be null. However, the property $int is declared as array. Maybe change the type of the property to array|null or add a type check?

Our type inference engine has found an assignment of a scalar value (like a string, an integer or null) to a property which is an array.

Either this assignment is in error or the assigned type should be added to the documentation/type hint for that property.

To type hint that a parameter can be either an array or null, you can set a type hint of array and a default value of null. The PHP interpreter will then accept both an array or null for that parameter.

function aContainsB(array $needle = null, array  $haystack) {
    if (!$needle) {
        return false;
    }

    return array_intersect($haystack, $needle) == $haystack;
}

The function can be called with either null or an array for the parameter $needle but will only accept an array as $haystack.

Loading history...
34
        return $this;
35
    }
36
37
    /**
38
     * ArrayAccess implementation
39
     *
40
     * @param mixed $offset An offset to check for
41
     * @return boolean true on success or false on failure
42
     */
43
    public function offsetExists($offset)
44
    {
45
        return isset($this->int[$offset]);
46
    }
47
48
    /**
49
     * ArrayAccess implementation
50
     *
51
     * @param mixed $offset The offset to retrieve
52
     * @return int
53
     */
54
    public function offsetGet($offset)
55
    {
56
        return $this->int[$offset];
57
    }
58
59
    /**
60
     * ArrayAccess implementation
61
     *
62
     * @param mixed $offset The offset to assign the value to
63
     * @param int $value The value to set
64
     * @return void
65
     */
66
    public function offsetSet($offset, $value)
67
    {
68
        $this->int[$offset] = $value;
69
    }
70
71
    /**
72
     * ArrayAccess implementation
73
     *
74
     * @param mixed $offset The offset to unset
75
     * @return void
76
     */
77
    public function offsetUnset($offset)
78
    {
79
        unset($this->int[$offset]);
80
    }
81
82
    /**
83
     * Iterator implementation
84
     *
85
     * @return int Return the current element
86
     */
87
    public function current()
88
    {
89
        return current($this->int);
90
    }
91
92
    /**
93
     * Iterator implementation
94
     * Move forward to next element
95
     *
96
     * @return void
97
     */
98
    public function next()
99
    {
100
        next($this->int);
101
    }
102
103
    /**
104
     * Iterator implementation
105
     *
106
     * @return string|null Return the key of the current element or null
107
     */
108
    public function key()
109
    {
110
        return key($this->int);
111
    }
112
113
    /**
114
     * Iterator implementation
115
     *
116
     * @return boolean Return the validity of the current position
117
     */
118
    public function valid()
119
    {
120
        return $this->key() !== null;
121
    }
122
123
    /**
124
     * Iterator implementation
125
     * Rewind the Iterator to the first element
126
     *
127
     * @return void
128
     */
129
    public function rewind()
130
    {
131
        reset($this->int);
132
    }
133
134
    /**
135
     * Countable implementation
136
     *
137
     * @return int Return count of elements
138
     */
139
    public function count()
140
    {
141
        return count($this->int);
142
    }
143
}
144