rector/rules/Privatization/NodeAnalyzer/EventSubscriberMethodNamesResolver.php
Tomas Votruba 9056c6c3a5 Updated Rector to commit 3c0cb22a58e6b8dc4195631046ba4a62ceabf279
3c0cb22a58 [automated] Re-Generate Nodes/Rectors Documentation (#984)
2021-10-10 00:30:12 +00:00

39 lines
1.3 KiB
PHP

<?php
declare (strict_types=1);
namespace Rector\Privatization\NodeAnalyzer;
use PhpParser\Node;
use PhpParser\Node\Expr\ArrayItem;
use PhpParser\Node\Scalar\String_;
use PhpParser\Node\Stmt\ClassMethod;
use RectorPrefix20211010\Symplify\Astral\NodeTraverser\SimpleCallableNodeTraverser;
final class EventSubscriberMethodNamesResolver
{
/**
* @var \Symplify\Astral\NodeTraverser\SimpleCallableNodeTraverser
*/
private $simpleCallableNodeTraverser;
public function __construct(\RectorPrefix20211010\Symplify\Astral\NodeTraverser\SimpleCallableNodeTraverser $simpleCallableNodeTraverser)
{
$this->simpleCallableNodeTraverser = $simpleCallableNodeTraverser;
}
/**
* @return string[]
*/
public function resolveFromClassMethod(\PhpParser\Node\Stmt\ClassMethod $classMethod) : array
{
$methodNames = [];
$this->simpleCallableNodeTraverser->traverseNodesWithCallable((array) $classMethod->stmts, function (\PhpParser\Node $node) use(&$methodNames) {
if (!$node instanceof \PhpParser\Node\Expr\ArrayItem) {
return null;
}
if (!$node->value instanceof \PhpParser\Node\Scalar\String_) {
return null;
}
$methodNames[] = $node->value->value;
});
return $methodNames;
}
}