Completed
Push — master ( 9f8fa7...d4ecd2 )
by Ivannis Suárez
06:56
created

Event::eventName()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
c 1
b 0
f 1
dl 0
loc 4
rs 10
cc 2
eloc 2
nc 2
nop 0
1
<?php
2
3
/**
4
 * This file is part of the Cubiche package.
5
 *
6
 * Copyright (c) Cubiche
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
namespace Cubiche\Core\EventDispatcher;
12
13
/**
14
 * Event class.
15
 *
16
 * @author Ivannis Suárez Jerez <[email protected]>
17
 */
18
class Event implements EventInterface
19
{
20
    /**
21
     * The event name.
22
     *
23
     * @var string
24
     */
25
    protected $eventName;
26
27
    /**
28
     * Has propagation stopped?
29
     *
30
     * @var bool
31
     */
32
    protected $propagationStopped = false;
33
34
    /**
35
     * Create a new event instance.
36
     *
37
     * @param string $eventName
38
     */
39
    public function __construct($eventName = null)
40
    {
41
        $this->eventName = $eventName;
42
    }
43
44
    /**
45
     * {@inheritdoc}
46
     */
47
    public function eventName()
48
    {
49
        return $this->eventName ? $this->eventName : get_class($this);
50
    }
51
52
    /**
53
     * Create a new event instance.
54
     *
55
     * @param string $name
56
     *
57
     * @return static
58
     */
59
    public static function named($name)
60
    {
61
        return new static($name);
62
    }
63
64
    /**
65
     * {@inheritdoc}
66
     */
67
    public function stopPropagation()
68
    {
69
        $this->propagationStopped = true;
70
71
        return $this;
72
    }
73
74
    /**
75
     * {@inheritdoc}
76
     */
77
    public function isPropagationStopped()
78
    {
79
        return $this->propagationStopped;
80
    }
81
}
82