/** * Get linkedinSkill from database, if not exist, create new one * * @param LinkedinSkill $linkedinSkill * @param bool $flush Insert to database or not * @return array */ public function getOrCreate(LinkedinSkill $linkedinSkill, $flush = true) { $linkedinSkillResult = $this->findOneBy(array('name' => $linkedinSkill->getName())); if (empty($linkedinSkillResult)) { $skillResult = Skill::createFromLinkedinSkill($linkedinSkill, true); $this->persist($skillResult, $flush); $linkedinSkillResult = $this->persist($linkedinSkill, $flush); } else { /** @var SkillRepository $skillRepository */ $skillRepository = $this->getEntityManager()->getRepository(ClassPath::SKILL); $skillResult = $skillRepository->getFromLinkedinSkill($linkedinSkillResult); } return array('skill' => $skillResult, 'linkedinSkill' => $linkedinSkillResult); }