/** * @param Project $project */ public function analyze(Project $project) { $logger = $project->getLogger(); foreach ($project->getSplFileInfos() as $splFileInfo) { try { $source = file($splFileInfo->getRealPath()); $code = join('', $source); } catch (\RuntimeException $e) { $project->addReport(new StringReport($e->getMessage())); continue; } try { $logger->info('Parsing ' . $splFileInfo->getRealPath()); $tree = $this->parser->parse($code); $project->addFile(new File($splFileInfo, $source, $tree)); } catch (Error $e) { $project->getLogger()->warning('[' . $this->getName() . '] ' . 'Error while parsing ' . $splFileInfo->getRealPath() . ' : ' . $e->getMessage()); $project->addReport(new FileParserErrorReport($splFileInfo, $e)); } } }