Collection   A
last analyzed

Complexity

Total Complexity 13

Size/Duplication

Total Lines 51
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Test Coverage

Coverage 100%

Importance

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

5 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 10 4
A clear() 0 7 2
A confirm() 0 7 2
A isValid() 0 10 3
A getMessages() 0 10 2
1
<?php
2
declare(strict_types=1);
3
4
namespace Sirius\Upload\Result;
5
6
use Sirius\Upload\Container\ContainerInterface;
7
8
class Collection extends \ArrayIterator implements ResultInterface
9 5
{
10
    public function __construct($files = [], ContainerInterface $container = null)
11 5
    {
12 5
        $filesArray = [];
13 3
        if (is_array($files) && !empty($files)) {
14 3
            foreach ($files as $key => $file) {
15 3
                $filesArray[$key] = new File($file, $container);
0 ignored issues
show
Bug introduced by
It seems like $container defined by parameter $container on line 10 can be null; however, Sirius\Upload\Result\File::__construct() does not accept null, maybe add an additional type check?

It seems like you allow that null is being passed for a parameter, however the function which is called does not seem to accept null.

We recommend to add an additional type check (or disallow null for the parameter):

function notNullable(stdClass $x) { }

// Unsafe
function withoutCheck(stdClass $x = null) {
    notNullable($x);
}

// Safe - Alternative 1: Adding Additional Type-Check
function withCheck(stdClass $x = null) {
    if ($x instanceof stdClass) {
        notNullable($x);
    }
}

// Safe - Alternative 2: Changing Parameter
function withNonNullableParam(stdClass $x) {
    notNullable($x);
}
Loading history...
16 3
            }
17 5
        }
18 5
        parent::__construct($filesArray);
19
    }
20 1
21
    public function clear()
22 1
    {
23
        foreach ($this as $file) {
24 1
            /* @var $file \Sirius\Upload\Result\File */
25 1
            $file->clear();
26 1
        }
27
    }
28 2
29
    public function confirm()
30 2
    {
31
        foreach ($this as $file) {
32 2
            /* @var $file \Sirius\Upload\Result\File */
33 2
            $file->confirm();
34 2
        }
35
    }
36 2
37
    public function isValid():bool
38 2
    {
39 2
        foreach ($this->getMessages() as $messages) {
40 1
            if ($messages) {
41
                return false;
42 1
            }
43
        }
44 1
45
        return true;
46
    }
47 2
48
    public function getMessages():array
49 2
    {
50 2
        $messages = [];
51
        foreach ($this as $key => $file) {
52 2
            /* @var $file \Sirius\Upload\Result\File */
53 2
            $messages[$key] = $file->getMessages();
54
        }
55 2
56
        return $messages;
57
    }
58
}
59