![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/rector/rector/packages/FileSystemRector/Parser/ |
<?php declare (strict_types=1); namespace Rector\FileSystemRector\Parser; use RectorPrefix202308\Nette\Utils\FileSystem; use PhpParser\Node\Stmt; use Rector\Core\PhpParser\Parser\RectorParser; use Rector\Core\Provider\CurrentFileProvider; use Rector\Core\ValueObject\Application\File; use Rector\NodeTypeResolver\NodeScopeAndMetadataDecorator; /** * Only for testing, @todo move to testing */ final class FileInfoParser { /** * @readonly * @var \Rector\NodeTypeResolver\NodeScopeAndMetadataDecorator */ private $nodeScopeAndMetadataDecorator; /** * @readonly * @var \Rector\Core\PhpParser\Parser\RectorParser */ private $rectorParser; /** * @readonly * @var \Rector\Core\Provider\CurrentFileProvider */ private $currentFileProvider; public function __construct(NodeScopeAndMetadataDecorator $nodeScopeAndMetadataDecorator, RectorParser $rectorParser, CurrentFileProvider $currentFileProvider) { $this->nodeScopeAndMetadataDecorator = $nodeScopeAndMetadataDecorator; $this->rectorParser = $rectorParser; $this->currentFileProvider = $currentFileProvider; } /** * @api tests only * @return Stmt[] */ public function parseFileInfoToNodesAndDecorate(string $filePath) : array { $stmts = $this->rectorParser->parseFile($filePath); $file = new File($filePath, FileSystem::read($filePath)); $stmts = $this->nodeScopeAndMetadataDecorator->decorateNodesFromFile($file, $stmts); $file->hydrateStmtsAndTokens($stmts, $stmts, []); $this->currentFileProvider->setFile($file); return $stmts; } }