AbstractValidator::validate()   A
last analyzed

Complexity

Conditions 3
Paths 3

Size

Total Lines 11
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 6
CRAP Score 3

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 3
eloc 5
c 1
b 0
f 0
nc 3
nop 1
dl 0
loc 11
ccs 6
cts 6
cp 1
crap 3
rs 10
1
<?php
2
3
declare(strict_types=1);
4
5
namespace midorikocak\arraytools;
6
7
abstract class AbstractValidator implements ValidableInterface
8
{
9
    protected array $validators = [];
10
    protected bool $isValid = true;
11
12
    public function uValidate($toValidate, callable $fn): bool
13
    {
14
        return $this->validate($toValidate) && $fn($toValidate);
15
    }
16
17 9
    public function validate($toValidate): bool
18
    {
19 9
        foreach ($this->validators as $validatorFn) {
20 9
            $this->isValid = $this->isValid && $validatorFn($toValidate);
21
        }
22
23 9
        $toReturn = $this->isValid;
24
25
        // Reset isValid property
26 9
        $this->isValid = true;
27 9
        return $toReturn;
28
    }
29
}
30