/ src / validation / ValidationResult.php
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  }