Example #1
0
 /**
  * @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));
         }
     }
 }