/** * {@inheritdoc} */ public function load(ObjectManager $manager) { /** @var EntityManager $manager */ $user = $this->getUser($manager); $businessUnit = $user->getOwner(); $organization = $user->getOrganization(); // Create locales sample with relationship between locales $localesRegistry = []; foreach ($this->locales as $item) { $code = $this->getLocaleNameByCode($item['code']); $locale = new Locale(); $locale->setCode($code); if ($item['parent']) { $parentCode = $this->getLocaleNameByCode($item['parent']); $locale->setParentLocale($localesRegistry[$parentCode]); } $localesRegistry[$code] = $locale; $manager->persist($locale); } $manager->flush(); // Create websites foreach ($this->webSites as $webSite) { $site = new Website(); $siteLocales = []; foreach ($webSite['locales'] as $localeCode) { $siteLocales[] = $this->getLocaleByCode($manager, $localeCode); } $site->setOwner($businessUnit)->setOrganization($organization)->setName($webSite['name'])->setUrl($webSite['url'])->resetLocales($siteLocales); $manager->persist($site); } $manager->flush(); // Create website sharing relationship foreach ($this->webSites as $webSite) { $site = $this->getWebsiteByName($manager, $webSite['name']); if ($webSite['sharing']) { foreach ($webSite['sharing'] as $siteName) { $relatedWebsite = $this->getWebsiteByName($manager, $siteName); $site->addRelatedWebsite($relatedWebsite); } } } $manager->flush(); $manager->clear(); }
/** * Load websites * * @param ObjectManager $manager */ public function load(ObjectManager $manager) { /** @var EntityManager $manager */ $user = $this->getUser($manager); $businessUnit = $user->getOwner(); $organization = $user->getOrganization(); // Create websites foreach ($this->webSites as $webSite) { $site = new Website(); $siteLocales = []; foreach ($webSite['locales'] as $localeCode) { $siteLocales[] = $this->getLocaleByCode($manager, $localeCode); } $site->setOwner($businessUnit)->setOrganization($organization)->setName($webSite['name'])->setUrl($webSite['url'])->resetLocales($siteLocales); $this->setReference($site->getName(), $site); $manager->persist($site); } $manager->flush(); $manager->clear(); }