![]() 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/src/Application/ |
<?php declare (strict_types=1); namespace Rector\Core\Application; use Rector\Core\PhpParser\NodeTraverser\RectorNodeTraverser; use Rector\Core\PhpParser\Parser\RectorParser; use Rector\Core\ValueObject\Application\File; use Rector\NodeTypeResolver\NodeScopeAndMetadataDecorator; final class FileProcessor { /** * @readonly * @var \Rector\NodeTypeResolver\NodeScopeAndMetadataDecorator */ private $nodeScopeAndMetadataDecorator; /** * @readonly * @var \Rector\Core\PhpParser\Parser\RectorParser */ private $rectorParser; /** * @readonly * @var \Rector\Core\PhpParser\NodeTraverser\RectorNodeTraverser */ private $rectorNodeTraverser; public function __construct(NodeScopeAndMetadataDecorator $nodeScopeAndMetadataDecorator, RectorParser $rectorParser, RectorNodeTraverser $rectorNodeTraverser) { $this->nodeScopeAndMetadataDecorator = $nodeScopeAndMetadataDecorator; $this->rectorParser = $rectorParser; $this->rectorNodeTraverser = $rectorNodeTraverser; } public function parseFileInfoToLocalCache(File $file) : void { // store tokens by absolute path, so we don't have to print them right now $stmtsAndTokens = $this->rectorParser->parseFileToStmtsAndTokens($file->getFilePath()); $oldStmts = $stmtsAndTokens->getStmts(); $oldTokens = $stmtsAndTokens->getTokens(); $newStmts = $this->nodeScopeAndMetadataDecorator->decorateNodesFromFile($file, $oldStmts); $file->hydrateStmtsAndTokens($newStmts, $oldStmts, $oldTokens); } public function refactor(File $file) : void { $newStmts = $this->rectorNodeTraverser->traverse($file->getNewStmts()); $file->changeNewStmts($newStmts); } }