/** * @param $projectId * @return ProjectInfo */ public function regenerateProjectInfo($projectId) { /** @var ProjectInfo $projectInfo */ $projectInfo = $this->getProjectInfoRepository()->getProjectInfo($projectId); if (!$projectInfo) { $projectInfo = new ProjectInfo(); $projectInfo->setProjectId($projectId); } $projectInfo->setBundles(array()); $projectInfo->setCatalogs(array()); /** @var Translation[] $translations */ $translations = $this->getTranslationRepository()->findBy(array("projectId" => intval($projectId))); foreach ($translations as $translation) { $bundle = $translation->getBundle(); $projectInfo->addBundle($bundle); $catalog = $translation->getCatalog(); $projectInfo->addCatalog($catalog); } $this->dm->persist($projectInfo); $this->dm->flush(); return $projectInfo; }