rector/rules/Privatization/NodeAnalyzer/EventSubscriberMethodNamesResolver.php
Tomas Votruba c6a9b6bdf0 Updated Rector to commit 65c3a44c638f203cb2c10affa6dcc70af920e6f8
65c3a44c63 [TypedPropertyRector] Handle nullable collection on TypedPropertyRector (#986)
2021-10-11 06:45:23 +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 RectorPrefix20211011\Symplify\Astral\NodeTraverser\SimpleCallableNodeTraverser;
final class EventSubscriberMethodNamesResolver
{
/**
* @var \Symplify\Astral\NodeTraverser\SimpleCallableNodeTraverser
*/
private $simpleCallableNodeTraverser;
public function __construct(\RectorPrefix20211011\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;
}
}