src/Service/ValidationService.php line 14

Open in your IDE?
  1. <?php
  2. namespace App\Service;
  3. use Symfony\Component\Validator\Constraints as Assert;
  4. use Symfony\Component\Form\FormError;
  5. use Symfony\Contracts\Translation\TranslatorInterface;
  6. class ValidationService
  7. {
  8.     static public function validateNotBlank($validator$formField)
  9.     {
  10.         $assert = new Assert\NotBlank();
  11.         $errors $validator->validate($formField->getData(), $assert);
  12.         if(count($errors) !== 0){
  13.             $formField->addError(new FormError("Campo obbligatorio"));
  14.             return false;
  15.         }
  16.         return true;
  17.     }
  18.     
  19.     static public function validateNotBlankWithZero($validator$formField)
  20.     {
  21.         $assert = new Assert\NotBlank();
  22.         $errors $validator->validate($formField->getData(), $assert);
  23.         if(count($errors) !== || $formField->getData() == 0){
  24.             $formField->addError(new FormError("Campo obbligatorio"));
  25.             return false;
  26.         }
  27.         return true;
  28.     }
  29.     static public function validateNotBlankType2($validator$formData$formFieldError)
  30.     {
  31.         $assert = new Assert\NotBlank();
  32.         $errors $validator->validate($formData->getData(), $assert);
  33.         if(count($errors) !== 0){
  34.             $formFieldError->addError(new FormError("Campo obbligatorio"));
  35.             return false;
  36.         }
  37.         return true;
  38.     }
  39.     
  40.     static public function validateNotBlankType3($validator$formData$formFieldError1$formFieldError2)
  41.     {
  42.         $assert = new Assert\NotBlank();
  43.         $errors $validator->validate($formData->getData(), $assert);
  44.         if(count($errors) !== 0){
  45.             $formFieldError1->addError(new FormError("Campo obbligatorio"));
  46.             $formFieldError2->addError(new FormError("Campo obbligatorio"));
  47.             return false;
  48.         }
  49.         return true;
  50.     }
  51.     static public function validateLength($formField$length)
  52.     {
  53.         if(strlen($formField->getData()) > $length){
  54.             $formField->addError(new FormError("Inserire al massimo ".$length." caratteri"));
  55.             return false;
  56.         }
  57.         return true;
  58.     }
  59.     static public function validateDate($validator$formField)
  60.     {
  61.         $assert = new Assert\Date();
  62.         $errors $validator->validate($formField->getData(), $assert);
  63.         if(count($errors) !== 0){
  64.             $formField->addError(new FormError("Inserire una data valida"));
  65.             return false;
  66.         }
  67.         return true;
  68.     }
  69.     
  70.     static public function validateCompareDate($formFieldFrom$formFieldTo$type$errorMsg)
  71.     {
  72.         switch($type){
  73.             case 'minor':
  74.                 if($formFieldFrom->getData()->format('Ymd') < $formFieldTo->getData()->format('Ymd')){
  75.                     $formFieldFrom->addError(new FormError($errorMsg)); return false;
  76.                     $formFieldTo->addError(new FormError($errorMsg)); return false;
  77.                 }
  78.                 break;
  79.             case 'minor-equal':
  80.                 if($formFieldFrom->getData()->format('Ymd') <= $formFieldTo->getData()->format('Ymd')){
  81.                     $formFieldFrom->addError(new FormError($errorMsg)); return false;
  82.                     $formFieldTo->addError(new FormError($errorMsg)); return false;
  83.                 }
  84.                 break;
  85.             case 'major':
  86.                 if($formFieldFrom->getData()->format('Ymd') > $formFieldTo->getData()->format('Ymd')){
  87.                     $formFieldFrom->addError(new FormError($errorMsg)); return false;
  88.                     $formFieldTo->addError(new FormError($errorMsg)); return false;
  89.                 }
  90.                 break;
  91.             case 'major-equal':
  92.                 if($formFieldFrom->getData()->format('Ymd') >= $formFieldTo->getData()->format('Ymd')){
  93.                     $formFieldFrom->addError(new FormError($errorMsg)); return false;
  94.                     $formFieldTo->addError(new FormError($errorMsg)); return false;
  95.                 }
  96.                 break;
  97.             default: break;
  98.         }
  99.         return true;
  100.     }
  101.     static public function validateEmail($validator$formField)
  102.     {
  103.         $assert = new Assert\Email();
  104.         $errors $validator->validate($formField->getData(), $assert);
  105.         if(count($errors) !== 0){
  106.             $formField->addError(new FormError("Inserire una e-mail valida"));
  107.             return false;
  108.         }
  109.         return true;
  110.     }
  111.     
  112.     static public function validateNotDuplicate($validator$formField$em$entity$parameters)
  113.     {
  114.         $value $em->getRepository($entity)->findDuplicate($formField->getData(), $parameters);
  115.         if($value != null){
  116.             $formField->addError(new FormError("Valore giĆ  presente"));
  117.             return false;
  118.         }
  119.         return true;
  120.     }
  121.     
  122.     static public function validateRegex($validator$formField$pattern$msg)
  123.     {
  124.         $assert = new Assert\Regex(['pattern' => $pattern]);
  125.         $errors $validator->validate($formField->getData(), $assert);
  126.         if(count($errors) !== 0){
  127.             $formField->addError(new FormError($msg));
  128.             return false;
  129.         }
  130.         return true;
  131.     }
  132.     
  133.     static public function validateFile($validator$formField$required$file$mb$formats)
  134.     {
  135.         if($required){
  136.             $assert = new Assert\NotBlank();
  137.             $errors $validator->validate($file$assert);
  138.             if(count($errors) !== 0){
  139.                 $formField->addError(new FormError("Inserire un file valido"));
  140.                 return false;
  141.             }
  142.         }
  143.         if($file != null){
  144.             if(filesize($file) > ($mb pow(2,20))){
  145.                 $formField->addError(new FormError("Inserire un file di dimensione inferiore a ".$mb." MB"));
  146.                 return false;
  147.             }
  148.             $found false;
  149.             $first true;
  150.             $formatsString "";
  151.             foreach($formats as $format){
  152.                 if($first$first false; else $formatsString.=', ';
  153.                 $formatsString.= $format;
  154.                 if($file->guessExtension() == $format){
  155.                     $found true;
  156.                     break;
  157.                 }
  158.             }
  159.             if(!$found){
  160.                 $formField->addError(new FormError("Inserire un file in uno dei seguenti formati: ".$formatsString));
  161.                 return false;
  162.             }
  163.         }
  164.         
  165.         return true;
  166.     }
  167.     
  168.     static public function validateMultipleEmailString($validator$formField$separatorPattern)
  169.     {    
  170.         $emails preg_split($separatorPattern$formField->getData());
  171.         $assert = new Assert\Email();
  172.         foreach($emails as $email){
  173.             $errors $validator->validate(rtrim(ltrim($email" ")," "), $assert);
  174.             if(count($errors) !== 0){
  175.                 $formField->addError(new FormError("Inserire una e-mail valida"));
  176.                 return false;
  177.             }
  178.         }
  179.         return true;
  180.     }
  181. }