Completed
Push — master ( cc5436...181e05 )
by Дмитрий
03:10 queued 36s
created

StatementListener   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 26
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Test Coverage

Coverage 0%

Importance

Changes 1
Bugs 0 Features 1
Metric Value
c 1
b 0
f 1
dl 0
loc 26
ccs 0
cts 12
cp 0
rs 10
wmc 4
lcom 1
cbo 2

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A beforeCompile() 0 13 3
1
<?php
2
/**
3
 * @author Patsura Dmitry https://github.com/ovr <[email protected]>
4
 */
5
6
namespace PHPSA\Analyzer\EventListener;
7
8
use PhpParser\Node;
9
use PHPSA\Analyzer\Pass\FunctionCall\PassFunctionCallInterface;
10
use Webiny\Component\EventManager\EventListener;
11
12
class StatementListener extends EventListener
13
{
14
    /**
15
     * @var array
16
     */
17
    private $analyzers;
18
19
    public function __construct(array $analyzers)
20
    {
21
        $this->analyzers = $analyzers;
22
    }
23
24
    public function beforeCompile(\PHPSA\Compiler\Event\StatementBeforeCompile $event)
25
    {
26
        $expression = $event->getStatement();
27
        $expressionClass = get_class($expression);
28
29
        if (!isset($this->analyzers[$expressionClass])) {
30
            return;
31
        }
32
33
        foreach ($this->analyzers[$expressionClass] as $analyzer) {
34
            $analyzer->pass($expression, $event->getContext());
35
        }
36
    }
37
}
38