Exemple #1
0
 /**
  * @param string $name
  *
  * @return TaxonInterface
  */
 private function createTaxon($name)
 {
     /** @var TaxonInterface $taxon */
     $taxon = $this->taxonFactory->createNew();
     $taxon->setName($name);
     $taxon->setCode(StringInflector::nameToCode($name));
     $taxon->setSlug($this->taxonSlugGenerator->generate($name));
     return $taxon;
 }
 /**
  * {@inheritdoc}
  */
 protected function configureOptions(OptionsResolver $resolver)
 {
     $resolver->setDefault('name', function (Options $options) {
         return $this->faker->words(3, true);
     })->setDefault('code', function (Options $options) {
         return StringInflector::nameToCode($options['name']);
     })->setDefault('slug', function (Options $options) {
         return $this->taxonSlugGenerator->generate($options['name']);
     })->setDefault('description', function (Options $options) {
         return $this->faker->paragraph;
     })->setDefault('children', [])->setAllowedTypes('children', ['array']);
 }
Exemple #3
0
 /**
  * @param array $names
  *
  * @return TaxonInterface
  */
 private function createTaxonInManyLanguages(array $names)
 {
     /** @var TaxonInterface $taxon */
     $taxon = $this->taxonFactory->createNew();
     $taxon->setCode(StringInflector::nameToCode($names['en_US']));
     foreach ($names as $locale => $name) {
         /** @var TranslationInterface $taxonTranslation */
         $taxonTranslation = $this->taxonTranslationFactory->createNew();
         $taxonTranslation->setLocale($locale);
         $taxonTranslation->setName($name);
         $taxonTranslation->setSlug($this->taxonSlugGenerator->generate($name));
         $taxon->addTranslation($taxonTranslation);
     }
     return $taxon;
 }
 /**
  * {@inheritdoc}
  */
 public function create(array $options = [])
 {
     $options = $this->optionsResolver->resolve($options);
     /** @var TaxonInterface $taxon */
     $taxon = $this->taxonRepository->findOneBy(['code' => $options['code']]);
     if (null === $taxon) {
         $taxon = $this->taxonFactory->createNew();
     }
     $taxon->setCode($options['code']);
     foreach ($this->getLocales() as $localeCode) {
         $taxon->setCurrentLocale($localeCode);
         $taxon->setFallbackLocale($localeCode);
         $taxon->setName($options['name']);
         $taxon->setDescription($options['description']);
         $taxon->setSlug($this->taxonSlugGenerator->generate($options['name']));
     }
     foreach ($options['children'] as $childOptions) {
         $taxon->addChild($this->create($childOptions));
     }
     return $taxon;
 }