Mercurial > hg > isophonics-drupal-site
comparison vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/FindingVisitor.php @ 13:5fb285c0d0e3
Update Drupal core to 8.4.7 via Composer. Security update; I *think* we've
been lucky to get away with this so far, as we don't support self-registration
which seems to be used by the so-called "drupalgeddon 2" attack that 8.4.5
was vulnerable to.
author | Chris Cannam |
---|---|
date | Mon, 23 Apr 2018 09:33:26 +0100 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
12:7a779792577d | 13:5fb285c0d0e3 |
---|---|
1 <?php declare(strict_types=1); | |
2 | |
3 namespace PhpParser\NodeVisitor; | |
4 | |
5 use PhpParser\Node; | |
6 use PhpParser\NodeVisitorAbstract; | |
7 | |
8 /** | |
9 * This visitor can be used to find and collect all nodes satisfying some criterion determined by | |
10 * a filter callback. | |
11 */ | |
12 class FindingVisitor extends NodeVisitorAbstract | |
13 { | |
14 /** @var callable Filter callback */ | |
15 protected $filterCallback; | |
16 /** @var Node[] Found nodes */ | |
17 protected $foundNodes; | |
18 | |
19 public function __construct(callable $filterCallback) { | |
20 $this->filterCallback = $filterCallback; | |
21 } | |
22 | |
23 /** | |
24 * Get found nodes satisfying the filter callback. | |
25 * | |
26 * Nodes are returned in pre-order. | |
27 * | |
28 * @return Node[] Found nodes | |
29 */ | |
30 public function getFoundNodes() : array { | |
31 return $this->foundNodes; | |
32 } | |
33 | |
34 public function beforeTraverse(array $nodes) { | |
35 $this->foundNodes = []; | |
36 | |
37 return null; | |
38 } | |
39 | |
40 public function enterNode(Node $node) { | |
41 $filterCallback = $this->filterCallback; | |
42 if ($filterCallback($node)) { | |
43 $this->foundNodes[] = $node; | |
44 } | |
45 | |
46 return null; | |
47 } | |
48 } |