Passed
Push — master ( 69d06b...aefa73 )
by Gabriel
06:27 queued 12s
created

DefaultProvider::addListener()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 3
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace ListenerProviders;
4
5
use ByTIC\EventDispatcher\ListenerProviders\Traits\ListenForInterfacesTrait;
0 ignored issues
show
Bug introduced by
The type ByTIC\EventDispatcher\Li...istenForInterfacesTrait was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
6
use League\Event\ListenerPriority;
7
use ListenerProviders\Traits\ProviderUtilitiesTrait;
8
9
/**
10
 * Class DefaultProvider
11
 * @package ByTIC\EventDispatcher\ListenerProvider
12
 */
13
class DefaultProvider extends PriorityListenerProvider
14
{
15
    use ProviderUtilitiesTrait;
16
17
    /**
18
     * @inheritDoc
19
     */
20
    public function getListenersForEvent(object $event): iterable
21
    {
22
        yield from parent::getListenersForEvent($event);
23
24
        if (method_exists($event, 'getName') ){
25
            yield from $this->getListenersForEventName($event->eventName());
26
        }
27
        yield from $this->getListenersForEventInterfaces($event);
0 ignored issues
show
Bug introduced by
The method getListenersForEventInterfaces() does not exist on ListenerProviders\DefaultProvider. Did you maybe mean getListenersForEvent()? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

27
        yield from $this->/** @scrutinizer ignore-call */ getListenersForEventInterfaces($event);

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
28
    }
29
30
    /**
31
     * @param string $eventName
32
     * @param callable|string $listener
33
     * @param int $priority
34
     */
35
    public function addListener(string $eventName, $listener, int $priority = ListenerPriority::NORMAL): void
36
    {
37
        $this->attach($listener, $priority, $eventName);
38
    }
39
40
    /**
41
     * @param string $eventName
42
     * @param callable|string $listener
43
     * @param int $priority
44
     */
45
    public function listen(string $eventName, $listener, int $priority = ListenerPriority::NORMAL): void
46
    {
47
        $this->attach($listener, $priority, $eventName);
48
    }
49
}
50