src/Social/FrontendBundle/Form/NewsletterType.php line 19

Open in your IDE?
  1. <?php
  2. namespace Social\FrontendBundle\Form;
  3. use Social\FrontendBundle\Entity\Newsletter;
  4. use Symfony\Component\Translation\TranslatorInterface;
  5. use Symfony\Component\OptionsResolver\OptionsResolver;
  6. use Symfony\Component\Form\Extension\Core\Type\TextType;
  7. use Symfony\Component\Form\AbstractType;
  8. use Symfony\Component\Form\FormBuilderInterface;
  9. use Symfony\Component\Validator\Constraints\Email;
  10. use Symfony\Component\Validator\Constraints\NotBlank;
  11. /**
  12.  * Class NewsletterType
  13.  *
  14.  * @package Social\FrontendBundle\Form
  15.  */
  16. class NewsletterType extends AbstractType
  17. {
  18.     /**
  19.      * @var TranslatorInterface
  20.      */
  21.     private $translator;
  22.     /**
  23.      * NewsletterType constructor.
  24.      *
  25.      * @param TranslatorInterface $translator
  26.      */
  27.     public function __construct(TranslatorInterface $translator)
  28.     {
  29.         $this->translator $translator;
  30.     }
  31.     /**
  32.      * @param FormBuilderInterface $builder
  33.      * @param array                $options
  34.      */
  35.     public function buildForm(FormBuilderInterface $builder, array $options)
  36.     {
  37.         $builder
  38.             ->add(
  39.                 'name',
  40.                 TextType::class,
  41.                 [
  42.                     'attr'        => [
  43.                         'class'       => 'form-control span2',
  44.                         'placeholder' => $this->translator->trans('Name *'),
  45.                     ],
  46.                     'constraints' => [
  47.                         new NotBlank(['message' => $this->translator->trans('Name should not be blank.')]),
  48.                     ],
  49.                 ]
  50.             )
  51.             ->add(
  52.                 'email',
  53.                 TextType::class,
  54.                 [
  55.                     'attr'        => [
  56.                         'class'       => 'form-control span2',
  57.                         'placeholder' => $this->translator->trans('Email *'),
  58.                     ],
  59.                     'constraints' => [
  60.                         new NotBlank(['message' => $this->translator->trans('Email should not be blank.')]),
  61.                         new Email(['message' => $this->translator->trans('Email is not valid.')]),
  62.                     ],
  63.                 ]
  64.             )
  65.             ->add('value'TextType::class,
  66.                 ['attr' => ['style' => 'left: -9999px; position: absolute;''required' => false]]);
  67.     }
  68.     /**
  69.      * @param OptionsResolver $resolver
  70.      */
  71.     public function configureOptions(OptionsResolver $resolver)
  72.     {
  73.         $resolver->setDefaults(
  74.             [
  75.                 'data_class'         => Newsletter::class,
  76.                 'cascade_validation' => true,
  77.                 'error_bubbling'     => true,
  78.             ]
  79.         );
  80.     }
  81.     /**
  82.      * @return string
  83.      */
  84.     public function getName(): string
  85.     {
  86.         return 'social_frontendbundle_newsletter';
  87.     }
  88. }