/** * @param Root $root * * @return Root */ private function hydrateDirectory(Root $root) { $basePath = $root->getBasePath(); foreach ($root->getFileCollection() as $file) { $dirpath = $file->getDirectory($basePath); if ($root->hasDirectory($dirpath)) { $directory = $root->getDirectoryByName($dirpath); } else { $directory = new Directory(); $directory->setPath($dirpath); } $directory->addFile($file); $root->addDirectory($directory); } return $root; }