src/Form/ContactType.php line 10

Open in your IDE?
  1. <?php
  2. namespace App\Form;
  3. use Symfony\Component\Form\AbstractType;
  4. use Symfony\Component\Form\FormBuilderInterface;
  5. use Symfony\Component\HttpFoundation\RequestStack;
  6. use Symfony\Component\OptionsResolver\OptionsResolver;
  7. class ContactType extends AbstractType
  8. {
  9. /**
  10. * @var RequestStack
  11. */
  12. protected $requestStack;
  13. public function __construct(RequestStack $requestStack)
  14. {
  15. $this->requestStack = $requestStack;
  16. }
  17. public function buildForm(FormBuilderInterface $builder, array $options)
  18. {
  19. $formSubject = str_replace('_', '', ucwords($options['subject'], '_'));
  20. $contactForm = sprintf('App\Handler\Contact\Contact%sFormHandler', $formSubject);
  21. $contactForm = new $contactForm($this->requestStack);
  22. $contactForm->getFields($builder, $options);
  23. }
  24. public function configureOptions(OptionsResolver $resolver)
  25. {
  26. $resolver->setRequired(['categories', 'subject', 'manager', 'translator']);
  27. $resolver->setDefaults(['message' => '']);
  28. }
  29. public function getBlockPrefix(): string
  30. {
  31. return 'contact_form';
  32. }
  33. }