Passed
Push — master ( 516163...07b934 )
by 世昌
02:15
created

RunnableTarget   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 92
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 10
dl 0
loc 92
rs 10
c 0
b 0
f 0
wmc 5

5 Methods

Rating   Name   Duplication   Size   Complexity  
A getName() 0 3 1
A getParameter() 0 3 1
A setParameter() 0 5 1
A run() 0 2 1
A setName() 0 5 1
1
<?php
2
namespace nebula\component\runnable\target;
3
4
/**
5
 * 可执行命令表目标
6
 *
7
 */
8
abstract class RunnableTarget  {
9
    
10
    /**
11
     * 参数
12
     *
13
     * @var array
14
     */
15
    protected $parameter;
16
    
17
    /**
18
     * 名称
19
     *
20
     * @var string
21
     */
22
    protected $name;
23
24
    /**
25
     * Get 可执行对象
26
     *
27
     * @return  mixed
28
     */ 
29
    abstract public function getRunnableTarget();
30
    /**
31
     * 是否可执行
32
     *
33
     * @return boolean
34
     */
35
    abstract public function isValid():bool;
36
    /**
37
     * 执行代码
38
     *
39
     * @param array $parameter
40
     * @return mixed
41
     */
42
    abstract public function apply(array $parameter);
43
44
    /**
45
     * 执行代码
46
     *
47
     * @param mixed ...$args
48
     * @return mixed
49
     */
50
    public function run(...$args) {
51
        return $this->apply($args);
52
    }
53
54
    /**
55
     * Get 执行参数
56
     *
57
     * @return  array
58
     */ 
59
    public function getParameter()
60
    {
61
        return $this->parameter;
62
    }
63
64
    /**
65
     * Set 执行参数
66
     *
67
     * @param  array  $parameter  执行参数
68
     *
69
     * @return  self
70
     */ 
71
    public function setParameter(array $parameter)
72
    {
73
        $this->parameter = $parameter;
74
75
        return $this;
76
    }
77
78
    /**
79
     * Get 可执行命令字符串表示
80
     *
81
     * @return  string
82
     */ 
83
    public function getName()
84
    {
85
        return $this->name;
86
    }
87
88
    /**
89
     * Set 可执行命令字符串表示
90
     *
91
     * @param  string  $name  可执行命令字符串表示
92
     *
93
     * @return  self
94
     */ 
95
    public function setName(string $name)
96
    {
97
        $this->name = $name;
98
99
        return $this;
100
    }
101
102
}