Completed
Pull Request — master (#2)
by Pol
03:20
created

BaseTask::setTaskArguments()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
cc 1
eloc 2
nc 1
nop 1
dl 0
loc 5
ccs 0
cts 4
cp 0
crap 2
rs 10
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types = 1);
4
5
namespace PhpTaskman\Core\Plugin;
6
7
use PhpTaskman\Core\Contract\TaskInterface;
8
use Robo\Common\BuilderAwareTrait;
9
use Robo\Contract\BuilderAwareInterface;
10
use Robo\TaskAccessor;
11
12
abstract class BaseTask extends \Robo\Task\BaseTask implements TaskInterface, BuilderAwareInterface
13
{
14
    use BuilderAwareTrait;
15
    use TaskAccessor;
16
17
    public const ARGUMENTS = [];
18
    public const NAME = 'NULL';
19
20
    /**
21
     * @var array
22
     */
23
    private $arguments;
24
25
    /**
26
     * {@inheritdoc}
27
     */
28
    public function getTaskArguments()
29
    {
30
        $arguments = $this->arguments;
31
32
        unset($arguments['task']);
33
34
        $argumentsAllowed = \array_combine(
35
            static::ARGUMENTS,
36
            static::ARGUMENTS
37
        );
38
39
        if (empty($argumentsAllowed)) {
40
            return $arguments;
41
        }
42
43
        foreach ($arguments as $key => $value) {
44
            if (isset($argumentsAllowed[$key])) {
45
                continue;
46
            }
47
48
            unset($arguments[$key]);
49
        }
50
51
        return $arguments;
52
    }
53
54
    /**
55
     * {@inheritdoc}
56
     */
57
    public function setTaskArguments(array $arguments = [])
58
    {
59
        $this->arguments = $arguments;
60
61
        return $this;
62
    }
63
}
64