HasObservables   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 64
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 1
Bugs 0 Features 1
Metric Value
eloc 14
c 1
b 0
f 1
dl 0
loc 64
ccs 0
cts 17
cp 0
rs 10
wmc 6

4 Methods

Rating   Name   Duplication   Size   Complexity  
A setObservableEvents() 0 5 1
A addObservableEvents() 0 6 2
A removeObservableEvents() 0 5 2
A getObservableEvents() 0 5 1
1
<?php
2
3
namespace Nip\Records\EventManager;
4
5
use Nip\Records\EventManager\Events\Observe;
6
7
/**
8
 * Trait HasObservables
9
 * @package Nip\Records\Events
10
 */
11
trait HasObservables
12
{
13
    /**
14
     * User exposed observable events.
15
     *
16
     * These are extra user-defined events observers may subscribe to.
17
     *
18
     * @var array
19
     */
20
    protected $observables = [];
21
22
    /**
23
     * Get the observable event names.
24
     *
25
     * @return array
26
     */
27
    public function getObservableEvents()
28
    {
29
        return array_merge(
30
            Observe::all(),
31
            $this->observables
32
        );
33
    }
34
35
    /**
36
     * Set the observable event names.
37
     *
38
     * @param array $observables
39
     * @return $this
40
     */
41
    public function setObservableEvents(array $observables)
42
    {
43
        $this->observables = $observables;
44
45
        return $this;
46
    }
47
48
    /**
49
     * Add an observable event name.
50
     *
51
     * @param array|mixed $observables
52
     * @return void
53
     */
54
    public function addObservableEvents($observables)
55
    {
56
        $this->observables = array_unique(
57
            array_merge(
58
                $this->observables,
59
                is_array($observables) ? $observables : func_get_args()
60
            )
61
        );
62
    }
63
64
    /**
65
     * Remove an observable event name.
66
     *
67
     * @param array|mixed $observables
68
     * @return void
69
     */
70
    public function removeObservableEvents($observables)
71
    {
72
        $this->observables = array_diff(
73
            $this->observables,
74
            is_array($observables) ? $observables : func_get_args()
75
        );
76
    }
77
}
78