Passed
Push — develop ( 6ca700...6a6555 )
by Peter
01:24
created

ConsoleRequest::getArguments()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 0
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
<?php
2
/**
3
 * Webino™ (http://webino.sk)
4
 *
5
 * @link        https://github.com/webino/request
6
 * @copyright   Copyright (c) 2019 Webino, s.r.o. (http://webino.sk)
7
 * @author      Peter Bačinský <[email protected]>
8
 * @license     BSD-3-Clause
9
 */
10
11
namespace Webino;
12
13
/**
14
 * Class ConsoleRequest
15
 * @package request
16
 */
17
class ConsoleRequest extends AbstractRequest implements
18
    ConsoleRequestInterface,
19
    InstanceFactoryMethodInterface
20
{
21
    /**
22
     * @param CreateInstanceEventInterface $event
23
     * @return ConsoleRequest
24
     */
25
    public static function create(CreateInstanceEventInterface $event): ConsoleRequest
26
    {
27
        $params = $event->getParameters();
28
        return new static($params[0] ?? []);
29
    }
30
31
    /**
32
     * Returns request defaults
33
     *
34
     * @param array $overrides
35
     * @return array
36
     */
37
    public static function defaults(array $overrides = []): array
38
    {
39
        return $overrides + [
40
            ConsoleRequest::TIME => ConsoleRequest::TIME_DEFAULT,
41
            ConsoleRequest::SCRIPT_FILENAME => ConsoleRequest::SCRIPT_FILENAME_DEFAULT,
42
            ConsoleRequest::COMMAND => '',
43
            ConsoleRequest::ARGUMENTS => [],
44
        ];
45
    }
46
47
    /**
48
     * Returns console command.
49
     *
50
     * @return string
51
     */
52
    public function getCommand(): string
53
    {
54
        return $this[$this::COMMAND] ?? $this['argv'][1] ?? '';
55
    }
56
57
    /**
58
     * Returns console arguments.
59
     *
60
     * @return array
61
     */
62
    public function getArguments(): array
63
    {
64
        return $this[$this::ARGUMENTS] ?? array_slice($this['argv'], 2) ?? [];
0 ignored issues
show
Bug introduced by
It seems like $this['argv'] can also be of type null; however, parameter $array of array_slice() does only seem to accept array, maybe add an additional type check? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

64
        return $this[$this::ARGUMENTS] ?? array_slice(/** @scrutinizer ignore-type */ $this['argv'], 2) ?? [];
Loading history...
65
    }
66
}
67