AbstractValidator   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 21
Duplicated Lines 0 %

Test Coverage

Coverage 75%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 9
c 1
b 0
f 0
dl 0
loc 21
ccs 6
cts 8
cp 0.75
rs 10
wmc 5

2 Methods

Rating   Name   Duplication   Size   Complexity  
A validate() 0 11 3
A uValidate() 0 3 2
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