<?php
 
 
namespace App\Form;
 
 
use Doctrine\ORM\EntityRepository;
 
use Symfony\Component\Form\AbstractType;
 
use Doctrine\Persistence\ObjectManager;
 
use Symfony\Component\Form\Extension\Core\Type\PasswordType;
 
use Symfony\Component\Form\FormBuilderInterface;
 
use Symfony\Component\OptionsResolver\OptionsResolver;
 
use Symfony\Component\Form\Extension\Core\Type\TextType;
 
use Symfony\Component\Form\Extension\Core\Type\RepeatedType;
 
use Symfony\Component\Form\Extension\Core\Type\EmailType;
 
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
 
 
 
 
class RegistrationForm extends AbstractType
 
{
 
    private $manager;
 
 
    public function __construct(ObjectManager $manager) {
 
        $this->manager = $manager;
 
    }
 
 
    public function buildForm(FormBuilderInterface $builder, array $options)
 
    {
 
 
        $builder
 
            ->add('email', EmailType::class, array(
 
                'label' => 'Email',
 
                'required' => true,
 
                'attr' => array(
 
                    'class' => 'form-control data-hj-allow',
 
                    'placeholder' => 'Please Enter Your Email Address'
 
                )
 
            ))
 
            ->add('first_name', TextType::class, array(
 
                'label' => 'First Name',
 
                'required' => true,
 
                'attr' => array(
 
                    'class' => 'form-control data-hj-allow',
 
                    'placeholder' => 'Please Enter You First Name'
 
                )
 
            ))
 
            ->add('last_name', TextType::class, array(
 
                'label' => 'Last Name',
 
                'required' => true,
 
                'attr' => array(
 
                    'class' => 'form-control data-hj-allow',
 
                    'placeholder' => 'Please Enter You Last Name'
 
                )
 
            ))
 
            ->add('id', HiddenType::class, array(
 
                'mapped' => false,
 
                'required' => false
 
            ))
 
            ->add('password', RepeatedType::class, [
 
                'type' => PasswordType::class,
 
                'invalid_message' => 'The password fields must match.',
 
                'options' => ['attr' => ['class' => 'password-field form-control data-hj-allow']],
 
                'required' => true,
 
                'first_options'  => ['label' => 'Password' , 'attr' => [ 'class' => 'form-control data-hj-allow',  'placeholder' => 'Put a Secured Password']],
 
                'second_options' => ['label' => 'Repeat Password', 'attr' => [ 'class' => 'form-control data-hj-allow',  'placeholder' => 'Confirm Password']]
 
            ]);
 
 
    }
 
 
 
    public function getBlockPrefix()
 
    {
 
        return 'registrationForm';
 
    }
 
 
    public function configureOptions(OptionsResolver $resolver)
 
    {
 
        $resolver->setDefaults(array(
 
            'data_class'       => 'App\Entity\UserEntity',
 
            'csrf_protection' => true,
 
            'csrf_field_name' => '_token',
 
            'allow_extra_fields' => true,
 
            // a unique key to help generate the secret token
 
            'intention'       => 'userEntity_intention'
 
        ));
 
    }
 
}