Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
100.00% |
5 / 5 |
|
100.00% |
2 / 2 |
CRAP | |
100.00% |
1 / 1 |
NodeVisitorFirstClass | |
100.00% |
5 / 5 |
|
100.00% |
2 / 2 |
3 | |
100.00% |
1 / 1 |
enterNode | |
100.00% |
4 / 4 |
|
100.00% |
1 / 1 |
2 | |||
getClassNode | |
100.00% |
1 / 1 |
|
100.00% |
1 / 1 |
1 |
1 | <?php declare(strict_types = 1); |
2 | /** |
3 | * @author: Doug Wilbourne (dougwilbourne@gmail.com) |
4 | * @version 1.0 |
5 | */ |
6 | |
7 | namespace pvc\parser\php\node_visitors; |
8 | |
9 | use PhpParser\Node; |
10 | use PhpParser\Node\Stmt\Class_; |
11 | use PhpParser\NodeTraverser; |
12 | use PhpParser\NodeVisitorAbstract; |
13 | |
14 | /** |
15 | * NodeVisitorFirstClass finds and stores the first Class_ node from the parse tree (abstract syntax tree). |
16 | * |
17 | * This class is designed to work in the context of the PhpParser (@see nikic/php-parser). |
18 | * |
19 | * Class NodeVisitorFirstClass |
20 | */ |
21 | class NodeVisitorFirstClass extends NodeVisitorAbstract |
22 | { |
23 | /** |
24 | * @var Class_|null |
25 | */ |
26 | protected ?Class_ $classNode; |
27 | |
28 | /** |
29 | * @function enterNode |
30 | * @param Node $node |
31 | * @return int|Node|void|null |
32 | */ |
33 | public function enterNode($node) |
34 | { |
35 | if ($node instanceof Class_) { |
36 | $this->classNode = $node; |
37 | return NodeTraverser::STOP_TRAVERSAL; |
38 | } |
39 | return; |
40 | } |
41 | |
42 | /** |
43 | * @function getClassNode |
44 | * @return Class_|null |
45 | */ |
46 | public function getClassNode(): ?Class_ |
47 | { |
48 | return $this->classNode ?? null; |
49 | } |
50 | } |