| Server IP : 66.29.153.156 / Your IP : 216.73.216.151 Web Server : LiteSpeed System : Linux premium322.web-hosting.com 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64 User : lastyfjz ( 1521) PHP Version : 8.1.34 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /opt/cpanel/ea-wappspector/vendor/rector/rector/src/PostRector/Rector/ |
Upload File : |
<?php
declare (strict_types=1);
namespace Rector\PostRector\Rector;
use PhpParser\Node;
use PhpParser\Node\Name\FullyQualified;
use PhpParser\Node\Stmt;
use PhpParser\Node\Stmt\GroupUse;
use PhpParser\Node\Stmt\Use_;
use Rector\CodingStyle\Node\NameImporter;
use Rector\Naming\Naming\UseImportsResolver;
use Rector\PostRector\Guard\AddUseStatementGuard;
final class NameImportingPostRector extends \Rector\PostRector\Rector\AbstractPostRector
{
/**
* @readonly
* @var \Rector\CodingStyle\Node\NameImporter
*/
private $nameImporter;
/**
* @readonly
* @var \Rector\Naming\Naming\UseImportsResolver
*/
private $useImportsResolver;
/**
* @readonly
* @var \Rector\PostRector\Guard\AddUseStatementGuard
*/
private $addUseStatementGuard;
/**
* @var array<Use_|GroupUse>
*/
private $currentUses = [];
public function __construct(NameImporter $nameImporter, UseImportsResolver $useImportsResolver, AddUseStatementGuard $addUseStatementGuard)
{
$this->nameImporter = $nameImporter;
$this->useImportsResolver = $useImportsResolver;
$this->addUseStatementGuard = $addUseStatementGuard;
}
public function beforeTraverse(array $nodes)
{
$this->currentUses = $this->useImportsResolver->resolve();
return $nodes;
}
/**
* @return \PhpParser\Node|int|null
*/
public function enterNode(Node $node)
{
if (!$node instanceof FullyQualified) {
return null;
}
return $this->nameImporter->importName($node, $this->getFile(), $this->currentUses);
}
/**
* @param Stmt[] $stmts
*/
public function shouldTraverse(array $stmts) : bool
{
return $this->addUseStatementGuard->shouldTraverse($stmts, $this->getFile()->getFilePath());
}
}