parameterProvider = $parameterProvider; $this->parser = $parser; $this->nodeScopeAndMetadataDecorator = $nodeScopeAndMetadataDecorator; $this->betterNodeFinder = $betterNodeFinder; } /** * @return Node[] */ public function parseFileToDecoratedNodes(string $file) : array { // autoload file require_once $file; $smartFileInfo = new \Symplify\SmartFileSystem\SmartFileInfo($file); $this->parameterProvider->changeParameter(\Rector\Core\Configuration\Option::SOURCE, [$file]); $nodes = $this->parser->parseFileInfo($smartFileInfo); $file = new \Rector\Core\ValueObject\Application\File($smartFileInfo, $smartFileInfo->getContents()); return $this->nodeScopeAndMetadataDecorator->decorateNodesFromFile($file, $nodes); } /** * @template T of Node * @param class-string $nodeClass * @return Node[] */ public function parseFileToDecoratedNodesAndFindNodesByType(string $file, string $nodeClass) : array { $nodes = $this->parseFileToDecoratedNodes($file); return $this->betterNodeFinder->findInstanceOf($nodes, $nodeClass); } }