ValidationResult.php
1 <?php 2 3 namespace ButA2SaeS3\validation; 4 5 class ValidationResult 6 { 7 private ?array $validationMessages; 8 private mixed $value; 9 10 private function __construct() 11 { 12 $this->validationMessages = array(); 13 $this->value = null; 14 } 15 16 public function isValid(): bool 17 { 18 return empty($this->validationMessages) && !empty($this->value); 19 } 20 21 public function hasMessages(): bool 22 { 23 return !empty($this->validationMessages); 24 } 25 26 public function messages(): array 27 { 28 return $this->validationMessages; 29 } 30 31 public function value(): mixed 32 { 33 return $this->value; 34 } 35 36 public function setValue(mixed $value): self 37 { 38 $this->value = $value; 39 return $this; 40 } 41 42 public function setMessages(array $validationMessages): array 43 { 44 return $this->validationMessages = $validationMessages; 45 } 46 47 public static function fail(array $validationMessages) 48 { 49 $res = new ValidationResult(); 50 $res->value = null; 51 $res->setMessages($validationMessages); 52 return $res; 53 } 54 55 public static function ok(mixed $value) 56 { 57 $res = new ValidationResult(); 58 $res->value = $value; 59 return $res; 60 } 61 62 public static function empty() 63 { 64 return new ValidationResult(); 65 } 66 67 public function addMessage(string $key, string $value) 68 { 69 $this->validationMessages[$key] = $value; 70 } 71 }