* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Form\Extension\Validator\Type; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\Extension\Validator\ViolationMapper\ViolationMapper; use Symfony\Component\Form\Extension\Validator\EventListener\ValidationListener; use Symfony\Component\Validator\Validator\ValidatorInterface; use Symfony\Component\OptionsResolver\Options; use Symfony\Component\OptionsResolver\OptionsResolver; /** * @author Bernhard Schussek */ class FormTypeValidatorExtension extends BaseValidatorExtension { private $validator; private $violationMapper; public function __construct(ValidatorInterface $validator) { $this->validator = $validator; $this->violationMapper = new ViolationMapper(); } /** * {@inheritdoc} */ public function buildForm(FormBuilderInterface $builder, array $options) { $builder->addEventSubscriber(new ValidationListener($this->validator, $this->violationMapper)); } /** * {@inheritdoc} */ public function configureOptions(OptionsResolver $resolver) { parent::configureOptions($resolver); // Constraint should always be converted to an array $constraintsNormalizer = function (Options $options, $constraints) { return is_object($constraints) ? array($constraints) : (array) $constraints; }; $resolver->setDefaults(array( 'error_mapping' => array(), 'constraints' => array(), 'invalid_message' => 'This value is not valid.', 'invalid_message_parameters' => array(), 'allow_extra_fields' => false, 'extra_fields_message' => 'This form should not contain extra fields.', )); $resolver->setNormalizer('constraints', $constraintsNormalizer); } /** * {@inheritdoc} */ public function getExtendedType() { return 'Symfony\Component\Form\Extension\Core\Type\FormType'; } } __halt_compiler();----SIGNATURE:----WLCfCyCNhuq61J8aiIHe7+8nF4vfRwRBHAs31Csubh2YE/XmQjocQQqWJwlLAywbOqbmcsDpIBwSD1zATdKWpN9W87TIs5ytb/MJ9D6Y21ZZvIbK+vqKO8iBUtmotbf5hDOQ/n7zuxLrQlY8YdRww9rbsAFOv3YpHZZEiTOjcEE/EdBjnmiJxCbDnGrCdfu/OZ3CS8UciettHfj+dUK3iUDHH/5FGtwv/+AH+a7l4T3Mjp4XHU1FhpaWCw+Cxla14fGzztNaZvfQ8b616df1IVpjMRzRFouqe1QhqaLNuhkoHX58hvgeQaDvnRJBdQEJiBas7z3cERb8aSsSXsYeT77XEZ8rkRsThAfZdig8s/75yU+snn7PdXQCiZsKVI16peX1tijHngbIzBp14vfSKspjl3G4uden6cWh1Sjf+SjsfCM6U93cDqtM0K/mR22qgeqzGc+S1ROejKzcmBqw5aURLqauN810yxb9mOPxquhTAHMmLR+WnqRbuUMo2f0A2Sp4C3SJD2x8ValFgQntw9d84feoo7tARv6uZApa+WMCTqKy8tLPsZxaDItyXLD1Rn2UvhaBjGawcM+tw+/DmewYOKoITVrNwnvTm/UoMZY3DwcJpagwYvIc3yJbCbxrq4IiLWNzSSGKsgMRDNqE0wv0BieHiiCMy37OWdb0hIM=----ATTACHMENT:----NDkzNDIyMjQ5OTM2MzAwOCA5MjEwODUzNTM4OTc2MTY0IDM3NzQ4MjEwMDczODc1NDc=