/** optimized method - may use caching etc */ public function getReport(XRef_IFileProvider $file_provider) { $this->loadFilesMap($file_provider); $files = $this->xref->filterFiles($file_provider->getFiles()); $this->stats["total_files"] = count($files); $count = 1; foreach ($files as $filename) { if ($this->showProgressBar) { XRef::progressBar($count, count($files), $filename); } $this->report[$filename] = $this->getFileReportCached($file_provider, $filename); $this->slices[$filename] = $this->getFileSlicesCached($file_provider, $filename); $count++; } $this->releaseParsedFile(); $this->saveFilesMap($file_provider); return $this->collectReport(); }