rector/packages/Caching/FileSystem/DependencyResolver.php
Tomas Votruba 28c719d1fb Updated Rector to commit 8961d20f56fa4b39bb21feec1f24422398f13dba
8961d20f56 [DX] Localize multi instance checker and privates accessor from Symplify + bump to PHPStan 1.8.3 (#2883)
2022-09-01 19:30:48 +00:00

44 lines
1.5 KiB
PHP

<?php
declare (strict_types=1);
namespace Rector\Caching\FileSystem;
use PhpParser\Node\Stmt;
use PHPStan\Analyser\MutatingScope;
use PHPStan\Analyser\NodeScopeResolver;
use PHPStan\Dependency\DependencyResolver as PHPStanDependencyResolver;
use Rector\Core\Util\Reflection\PrivatesAccessor;
final class DependencyResolver
{
/**
* @readonly
* @var \PHPStan\Analyser\NodeScopeResolver
*/
private $nodeScopeResolver;
/**
* @readonly
* @var PHPStanDependencyResolver
*/
private $phpStanDependencyResolver;
/**
* @readonly
* @var \Rector\Core\Util\Reflection\PrivatesAccessor
*/
private $privatesAccessor;
public function __construct(NodeScopeResolver $nodeScopeResolver, PHPStanDependencyResolver $phpStanDependencyResolver, PrivatesAccessor $privatesAccessor)
{
$this->nodeScopeResolver = $nodeScopeResolver;
$this->phpStanDependencyResolver = $phpStanDependencyResolver;
$this->privatesAccessor = $privatesAccessor;
}
/**
* @return string[]
*/
public function resolveDependencies(Stmt $stmt, MutatingScope $mutatingScope) : array
{
$analysedFileAbsolutesPaths = $this->privatesAccessor->getPrivateProperty($this->nodeScopeResolver, 'analysedFiles');
$nodeDependencies = $this->phpStanDependencyResolver->resolveDependencies($stmt, $mutatingScope);
return $nodeDependencies->getFileDependencies($mutatingScope->getFile(), $analysedFileAbsolutesPaths);
}
}