src/Transformer/JsonSchemaForm/AbstractTransformer.php line 37
<?phpdeclare(strict_types=1);/*** Copyright (c) 2019 TECLA Consulting Group oü.* All rights reserved.** This unpublished material is proprietary to TECLA Consulting Group oü.* All rights reserved. The methods and* techniques described herein are considered trade secrets* and/or confidential. Reproduction or distribution, in whole* or in part, is forbidden except by express written permission* of TECLA Consulting Group oü.** @author Matúš Sýkorjak <matus@tecla.no>* @copyright 2019 TECLA Consulting Group oü*/namespace App\Transformer\JsonSchemaForm;use Symfony\Component\Form\FormInterface;use Symfony\Component\Form\FormTypeGuesserInterface;use Symfony\Contracts\Translation\TranslatorInterface;abstract class AbstractTransformer implements TransformerInterface{/*** @var TranslatorInterface*/protected $translator;/*** @var FormTypeGuesserInterface|null*/protected $validatorGuesser;public function __construct(TranslatorInterface $translator, FormTypeGuesserInterface $validatorGuesser = null){$this->translator = $translator;$this->validatorGuesser = $validatorGuesser;}/*** @param ExtensionInterface[] $extensions*/protected function applyExtensions(array $extensions, FormInterface $form, array $schema): array{$newSchema = $schema;foreach ($extensions as $extension) {$newSchema = $extension->apply($form, $newSchema);}return $newSchema;}/*** @param ExtensionInterface[] $extensions*/protected function addCommonSpecs(FormInterface $form, array $schema, ?string $widget, array $extensions = []): array{$schema = $this->addLabel($form, $schema);$schema = $this->addDisabled($form, $schema);$schema = $this->addAttr($form, $schema);$schema = $this->addPattern($form, $schema);$schema = $this->addDescription($form, $schema);$schema = $this->addWidget($schema, $widget);$schema = $this->applyExtensions($extensions, $form, $schema);return $schema;}protected function addPattern(FormInterface $form, array $schema): array{if ($attr = $form->getConfig()->getOption('attr')) {if (isset($attr['pattern'])) {$schema['pattern'] = $attr['pattern'];}}return $schema;}protected function addLabel(FormInterface $form, array $schema): array{$translationDomain = $form->getConfig()->getOption('translation_domain');$title = $form->getConfig()->getOption('label');if (null === $title) {$title = $form->getName();}if (false === empty($title) && false !== $translationDomain) {$title = $this->translator->trans($title, $form->getConfig()->getOption('label_translation_parameters', []), $translationDomain);}$schema['title'] = $title;return $schema;}protected function addDisabled(FormInterface $form, array $schema): array{$schema['disabled'] = true === $form->getConfig()->getOption('disabled');return $schema;}protected function addAttr(FormInterface $form, array $schema): array{$attr = $form->getConfig()->getOption('attr');if (false === empty($attr)) {$schema['attr'] = $attr;}return $schema;}protected function addDescription(FormInterface $form, array $schema): array{$description = $form->getConfig()->getOption('help');if (null !== $description) {$translationDomain = $form->getConfig()->getOption('translation_domain');if (false !== $translationDomain) {$description = $this->translator->trans($description, $form->getConfig()->getOption('help_translation_parameters', []), $translationDomain);}$schema['description'] = $description;}return $schema;}/*** @param mixed $configWidget*/protected function addWidget(array $schema, $configWidget): array{if ($configWidget) {$schema['widget'] = $configWidget;}return $schema;}protected function isRequired(FormInterface $form): bool{return $form->getConfig()->getOption('required');}}