Completed
Push — master ( 390e4e...b0ec12 )
by Taosikai
12:57
created

CallableTimer   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 53
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Importance

Changes 0
Metric Value
wmc 5
c 0
b 0
f 0
lcom 0
cbo 1
dl 0
loc 53
rs 10

5 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 6 1
A isPeriodic() 0 4 1
A getInterval() 0 4 1
A setInterval() 0 4 1
A __invoke() 0 4 1
1
<?php
2
/**
3
 * Spike library
4
 * @author Tao <[email protected]>
5
 */
6
namespace Spike\Timer;
7
8
class CallableTimer extends Timer
9
{
10
    protected $periodic;
11
12
    /**
13
     * @var callable
14
     */
15
    protected $callable;
16
17
    /**
18
     * @param int|float $interval
19
     */
20
    protected $interval;
21
22
    public function __construct($interval, callable $callable, $periodic = false)
23
    {
24
        $this->callable = $callable;
25
        $this->interval = $interval;
26
        $this->periodic = $periodic;
27
    }
28
29
    /**
30
     * {@inheritdoc}
31
     */
32
    public function isPeriodic()
33
    {
34
        return $this->periodic;
35
    }
36
37
    /**
38
     * @return int|float
39
     */
40
    public function getInterval()
41
    {
42
        return $this->interval;
43
    }
44
45
    /**
46
     * @param int|float $interval
47
     */
48
    public function setInterval($interval)
49
    {
50
        $this->interval = $interval;
51
    }
52
53
    /**
54
     * {@inheritdoc}
55
     */
56
    public function __invoke()
57
    {
58
        return call_user_func($this->callable);
59
    }
60
}