* * 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:----Ifb1e5lsbqckwLwKnkN9bfI+j2lFlLqfsj9FyUz+QIdVVIbuMi/BqhrSMOpmMZH6e6OTzv5cg5GTwnw52gPIXERr6LgOYXgN0wcWrtuAMPJK6HzT5ArZLrd46FVhBy6rzqlWcAtfhwhebD2jDw9s+TkEixUurV3DmMnRQiPS0k6OCmtwTH3lmVEXFuKbCGjg7XipTfm0OxsFTVTyupqIU/2OoJvmJ8NIk/fxlQdZkXjYMyuTr+PMVN+V/iB8c7fUugD0NnzuE3VkpBdtA5RSHTDgptvb9zJjLS0EvZULdWZ7sOxj6yyOtu+2xuPt8TmI0u3CNfcPg9vDDLVXoYxeoOjMKfNDqPoh4PKFM5V+I++nnqyAfRZuZj7pmwhpLNxW8aQCgSwbwKgwqTwPW72Eq0SrfSmUF3CKWMELlTv26SZ0FiJzNr78S/nS/0LqCHc2F0oTevEE+ttFSmluNjGlnUeC7ySzYvyw3dPUFRTFgvJ6HXvr67vV1IUByCHERdI3rAKz+WYjM/f0xXWp05KSogw26hFcW/tID7NVXG6CTRAsLLs8DvxQIgkHg1/lXoSEV66rCjGbM2LlCsPm/WH6CiSMp6hX/n6/EDpPW+OmnKgpv/l1YJ7lKcrBu0TuHGthNsYJjnQX6F5xQUHAitFM7XWcuvbt7lx5ZoDL3Dfab/8=----ATTACHMENT:----MTg1MzU3MzIyMjUzMTc4MCA4NDI0Mzg1Njg0NTc1NDAzIDE3MDYwOTg0NzU5OTY1NzY=