/** * {@inheritDoc} */ public function openBuffer(File $file) { if (!isset($this->builders[$file->getRelativePath()])) { $this->builders[$file->getRelativePath()] = new PatchBuilder($file->getCode(), $file->getRelativePath()); } return new PatchBuffer($this->builders[$file->getRelativePath()]); }
public function findNames(File $file) { $parser = new PHPParser_Parser(new PHPParser_Lexer()); $collector = new PhpNameCollector(); $traverser = new PHPParser_NodeTraverser(); try { $stmts = $parser->parse($file->getCode()); } catch (PHPParser_Error $e) { throw new \RuntimeException("Error parsing " . $file->getRelativePath() . ": " . $e->getMessage(), 0, $e); } $traverser->addVisitor($collector); $traverser->traverse($stmts); return array_map(function ($use) use($file) { $type = constant('QafooLabs\\Refactoring\\Domain\\Model\\PhpName::TYPE_' . strtoupper($use['type'])); return new PhpNameOccurance(new PhpName($use['fqcn'], $use['alias'], $type), $file, $use['line']); }, $collector->collectedNameDeclarations()); }