Validation   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 19
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 6
eloc 11
dl 0
loc 19
ccs 12
cts 12
cp 1
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A addValidator() 0 3 2
A validate() 0 9 4
1
<?php
2
3
4
namespace Logikos\Util;
5
6
7
use Logikos\Util\Validation\Result;
8
use Logikos\Util\Validation\Validator;
9
10
class Validation {
11
12
  /** @var Validation\Validator[] */
13
  protected $validators = [];
14
15 21
  public function addValidator(Validator ...$validators) {
16 21
    foreach($validators as $v)
17 21
      array_push($this->validators, $v);
18 21
  }
19
20 23
  public function validate($value): Result {
21 23
    $messages = [];
22 23
    foreach ($this->validators as $validator) {
23 20
      if (!$validator->validate($value))
24 20
        array_push($messages, $validator->getDescription());
25
    }
26 23
    return count($messages)
27 15
        ? new Validation\InvalidResult($messages)
28 23
        : new Validation\ValidResult();
29
  }
30
}