src/FMT/Application/FormType/Security/RegistrationStudentType.php line 22

Open in your IDE?
  1. <?php
  2. namespace FMT\Application\FormType\Security;
  3. use FMT\Data\Entity\User;
  4. use FMT\Application\FormType\Subscribers\RegistrationStudentSubscriber;
  5. use FMT\Application\FormType\UserProfileType;
  6. use FMT\Application\Validator\Constraints\FmtEmail;
  7. use Symfony\Component\Form\AbstractType;
  8. use Symfony\Component\Form\Extension\Core\Type\EmailType;
  9. use Symfony\Component\Form\FormBuilderInterface;
  10. use Symfony\Component\OptionsResolver\OptionsResolver;
  11. use Symfony\Component\Validator\Constraints\NotBlank;
  12. use Symfony\Component\Validator\Constraints\Valid;
  13. /**
  14.  * Class RegistrationStudentType
  15.  * @package FMT\Application\FormType\Security
  16.  * @SuppressWarnings(PHPMD.UnusedFormalParameter)
  17.  * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
  18.  */
  19. class RegistrationStudentType extends AbstractType
  20. {
  21.     /**
  22.      * @var RegistrationStudentSubscriber
  23.      */
  24.     private $subscriber;
  25.     /**
  26.      * @param RegistrationStudentSubscriber $subscriber
  27.      */
  28.     public function __construct(RegistrationStudentSubscriber $subscriber)
  29.     {
  30.         $this->subscriber $subscriber;
  31.     }
  32.     /**
  33.      * @param FormBuilderInterface $builder
  34.      * @param array $options
  35.      */
  36.     public function buildForm(FormBuilderInterface $builder, array $options)
  37.     {
  38.         $builder
  39.             ->add('login'EmailType::class, [
  40.                 'required' => true,
  41.                 'label' => false,
  42.                 'attr' => [
  43.                     'placeholder' => 'Email Address',
  44.                 ],
  45.                 'constraints' => [
  46.                     new NotBlank([
  47.                         'groups' => ['registration']
  48.                     ]),
  49.                     new FmtEmail([
  50.                         'groups' => ['registration']
  51.                     ]),
  52.                 ],
  53.             ])
  54.             ->add('profile'UserProfileType::class, [
  55.                 'required' => true,
  56.                 'label' => false,
  57.                 'constraints' => [
  58.                     new Valid(),
  59.                 ],
  60.             ])
  61.             ->addEventSubscriber($this->subscriber);
  62.     }
  63.     /**
  64.      * @param OptionsResolver $resolver
  65.      */
  66.     public function configureOptions(OptionsResolver $resolver)
  67.     {
  68.         $resolver->setDefaults(
  69.             [
  70.                 'data_class' => User::class,
  71.                 'validation_groups' => ['registration'],
  72.                 'attr' => ['novalidate' => true],
  73.             ]
  74.         );
  75.     }
  76. }