/** * @param AnalyzerResult $result */ public function generate(AnalyzerResult $result) { $tree = new ResultDirectory(); $files = $result->getPerFile(); foreach ($files as $fileResult) { $relativePath = PathNormalizer::makeRelativeTo($fileResult->getFile(), $this->sourceDir); $tree->addFileResult($relativePath, $fileResult); } $this->renderDirectoryRecursively($tree); }
/** * @param $filePath * @param AnalyzerFileResult $fileResult */ public function addFileResult($filePath, AnalyzerFileResult $fileResult) { $firstSlash = strpos($filePath, '/'); if ($firstSlash === false) { $this->files[$filePath] = $fileResult; return; } $dirName = substr($filePath, 0, $firstSlash); if (isset($this->directories[$dirName])) { $directory = $this->directories[$dirName]; } else { $directory = new ResultDirectory(array_merge($this->path, array($dirName))); $this->directories[$dirName] = $directory; } $subPath = substr($filePath, $firstSlash + 1); $directory->addFileResult($subPath, $fileResult); }