Validation::validate()   A
last analyzed

Complexity

Conditions 4
Paths 6

Size

Total Lines 9
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 8
CRAP Score 4

Importance

Changes 0
Metric Value
eloc 7
dl 0
loc 9
ccs 8
cts 8
cp 1
rs 10
c 0
b 0
f 0
cc 4
nc 6
nop 1
crap 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
}