vendor/symfony/form/Extension/Validator/Type/UploadValidatorExtension.php line 50

Open in your IDE?
  1. <?php
  2. /*
  3.  * This file is part of the Symfony package.
  4.  *
  5.  * (c) Fabien Potencier <[email protected]>
  6.  *
  7.  * For the full copyright and license information, please view the LICENSE
  8.  * file that was distributed with this source code.
  9.  */
  10. namespace Symfony\Component\Form\Extension\Validator\Type;
  11. use Symfony\Component\Form\AbstractTypeExtension;
  12. use Symfony\Component\Form\Extension\Core\Type\FormType;
  13. use Symfony\Component\OptionsResolver\Options;
  14. use Symfony\Component\OptionsResolver\OptionsResolver;
  15. use Symfony\Component\Translation\TranslatorInterface as LegacyTranslatorInterface;
  16. use Symfony\Contracts\Translation\TranslatorInterface;
  17. /**
  18.  * @author Abdellatif Ait boudad <[email protected]>
  19.  * @author David Badura <[email protected]>
  20.  */
  21. class UploadValidatorExtension extends AbstractTypeExtension
  22. {
  23.     private $translator;
  24.     private $translationDomain;
  25.     /**
  26.      * @param TranslatorInterface $translator
  27.      */
  28.     public function __construct($translatorstring $translationDomain null)
  29.     {
  30.         if (!$translator instanceof LegacyTranslatorInterface && !$translator instanceof TranslatorInterface) {
  31.             throw new \TypeError(sprintf('Argument 1 passed to %s() must be an instance of %s, %s given.'__METHOD__TranslatorInterface::class, \is_object($translator) ? \get_class($translator) : \gettype($translator)));
  32.         }
  33.         $this->translator $translator;
  34.         $this->translationDomain $translationDomain;
  35.     }
  36.     /**
  37.      * {@inheritdoc}
  38.      */
  39.     public function configureOptions(OptionsResolver $resolver)
  40.     {
  41.         $translator $this->translator;
  42.         $translationDomain $this->translationDomain;
  43.         $resolver->setNormalizer('upload_max_size_message', function (Options $options$message) use ($translator$translationDomain) {
  44.             return function () use ($translator$translationDomain$message) {
  45.                 return $translator->trans($message(), [], $translationDomain);
  46.             };
  47.         });
  48.     }
  49.     /**
  50.      * {@inheritdoc}
  51.      */
  52.     public static function getExtendedTypes(): iterable
  53.     {
  54.         return [FormType::class];
  55.     }
  56. }