| Current Path : /var/www/www.indacotrentino.com/www/vendor/rector/rector/rules/Naming/Naming/ |
| Current File : /var/www/www.indacotrentino.com/www/vendor/rector/rector/rules/Naming/Naming/AliasNameResolver.php |
<?php
declare (strict_types=1);
namespace Rector\Naming\Naming;
use PhpParser\Node\Identifier;
use PhpParser\Node\Name;
final class AliasNameResolver
{
/**
* @readonly
* @var \Rector\Naming\Naming\UseImportsResolver
*/
private $useImportsResolver;
public function __construct(\Rector\Naming\Naming\UseImportsResolver $useImportsResolver)
{
$this->useImportsResolver = $useImportsResolver;
}
public function resolveByName(Name $name) : ?string
{
$uses = $this->useImportsResolver->resolveForNode($name);
$nameString = $name->toString();
foreach ($uses as $use) {
$prefix = $this->useImportsResolver->resolvePrefix($use);
foreach ($use->uses as $useUse) {
if (!$useUse->alias instanceof Identifier) {
continue;
}
$name = $prefix . $useUse->name->toString();
if ($name !== $nameString) {
continue;
}
return (string) $useUse->getAlias();
}
}
return null;
}
}