rector/rules/CodingStyle/Node/UseNameAliasToNameResolver.php
Tomas Votruba cdc3b7adef Updated Rector to commit f451b0b8e1e6761ec7f50809745d44d01caba66d
f451b0b8e1 [PHP 8.0] Bump to promoted properties (#4)
2021-05-10 23:39:21 +00:00

45 lines
1.4 KiB
PHP

<?php
declare (strict_types=1);
namespace Rector\CodingStyle\Node;
use PhpParser\Node\Stmt\Use_;
use Rector\CodingStyle\ClassNameImport\ShortNameResolver;
use Rector\CodingStyle\Naming\ClassNaming;
use Rector\Core\ValueObject\Application\File;
final class UseNameAliasToNameResolver
{
/**
* @var \Rector\CodingStyle\Naming\ClassNaming
*/
private $classNaming;
/**
* @var \Rector\CodingStyle\ClassNameImport\ShortNameResolver
*/
private $shortNameResolver;
public function __construct(\Rector\CodingStyle\Naming\ClassNaming $classNaming, \Rector\CodingStyle\ClassNameImport\ShortNameResolver $shortNameResolver)
{
$this->classNaming = $classNaming;
$this->shortNameResolver = $shortNameResolver;
}
/**
* @return array<string, string[]>
*/
public function resolve(\Rector\Core\ValueObject\Application\File $file, \PhpParser\Node\Stmt\Use_ $use) : array
{
$useNamesAliasToName = [];
$shortNames = $this->shortNameResolver->resolveForNode($file);
foreach ($shortNames as $alias => $useImport) {
if (!\is_string($alias)) {
continue;
}
$shortName = $this->classNaming->getShortName($useImport);
if ($shortName === $alias) {
continue;
}
$useNamesAliasToName[$shortName][] = $alias;
}
return $useNamesAliasToName;
}
}