/** * @return NodeTraverser */ protected function createNodeTraverser() { $loader = new Loader(); $loader->setLogger($this->getLogger()); $traverser = new NodeTraverser(); $traverser->setVisitorLoader($loader); return $traverser; }
public function analyze(SplFileInfo $file) { $analysis = new Analysis($file); try { if ($stmts = $this->parser->parse($file->getContents())) { $this->adtTraverser->bindFile($file); $adtStmts = $this->adtTraverser->getAdtStmtsBy($stmts); foreach ($adtStmts as $node) { $this->nodeTraverser->setAdt($analysis->createAdt()); $this->nodeTraverser->traverse(array($node)); } } } catch (Error $error) { $this->logger->error($error->getMessage(), array($file)); } $this->getAnalysisCollection()->attach($analysis); return $analysis; }