Completed
Push — master ( b8bed0...083509 )
by Eric
04:00 queued 01:09
created

ControllerEvent::validateCallback()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 8
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 0 Features 1
Metric Value
c 2
b 0
f 1
dl 0
loc 8
rs 9.4285
cc 2
eloc 4
nc 2
nop 1
1
<?php
2
3
declare(strict_types = 1);
4
5
namespace Jarvis\Skill\EventBroadcaster;
6
7
/**
8
 * @author Eric Chau <[email protected]>
9
 */
10
class ControllerEvent extends SimpleEvent
11
{
12
    private $callback;
13
    private $arguments;
14
15
    public function __construct(\Closure $callback, array $arguments = [])
16
    {
17
        $this->callback = $callback;
18
        $this->arguments = $arguments;
19
    }
20
21
    /**
22
     * @codeCoverageIgnore
23
     *
24
     * @return mixed
25
     */
26
    public function callback(): \Closure
27
    {
28
        return $this->callback;
29
    }
30
31
    /**
32
     * Set new callback to ControllerEvent. It must be callable.
33
     *
34
     * @param  mixed $callback The new callback to set
35
     * @return self
36
     * @throws \InvalidArgumentException if passed callback is not callable
37
     */
38
    public function setCallback(\Closure $callback): ControllerEvent
39
    {
40
        $this->callback = $callback;
41
42
        return $this;
43
    }
44
45
    /**
46
     * @codeCoverageIgnore
47
     *
48
     * @return array
49
     */
50
    public function arguments(): array
51
    {
52
        return $this->arguments;
53
    }
54
55
    /**
56
     * @codeCoverageIgnore
57
     *
58
     * Sets new list of arguments to ControllerEvent.
59
     *
60
     * @param  array $arguments The new arguments to set, default: empty array ([])
61
     * @return self
62
     */
63
    public function setArguments(array $arguments = []): ControllerEvent
64
    {
65
        $this->arguments = $arguments;
66
67
        return $this;
68
    }
69
}
70