Passed
Pull Request — master (#222)
by Alexander
02:58
created

GroupRule   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 30
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 7
dl 0
loc 30
ccs 9
cts 9
cp 1
rs 10
c 1
b 0
f 0
wmc 4
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Yiisoft\Validator\Rule;
6
7
use Closure;
8
use Yiisoft\Validator\Rule\Trait\RuleNameTrait;
0 ignored issues
show
Bug introduced by
A parse error occurred: Syntax error, unexpected T_TRAIT, expecting T_STRING or '{' on line 8 at column 27
Loading history...
9
use Yiisoft\Validator\Rule\Trait\HandlerClassNameTrait;
10
use Yiisoft\Validator\ParametrizedRuleInterface;
11
use Yiisoft\Validator\RulesDumper;
12
13
/**
14
 * Validates a single value for a set of custom rules.
15
 */
16
abstract class GroupRule implements ParametrizedRuleInterface
17
{
18
    use HandlerClassNameTrait;
19
    use RuleNameTrait;
20
21
    public function __construct(
22
        private string $message = 'This value is not a valid.',
23
        private bool $skipOnEmpty = false,
24
        private bool $skipOnError = false,
25
        private ?Closure $when = null,
26
    ) {
27
    }
28
29
    /**
30
     * @return string
31
     */
32 4
    public function getMessage(): string
33
    {
34 4
        return $this->message;
35
    }
36
37
    /**
38
     * @return bool
39
     */
40
    public function isSkipOnEmpty(): bool
41
    {
42
        return $this->skipOnEmpty;
43
    }
44
45
    /**
46
     * @return bool
47
     */
48
    public function isSkipOnError(): bool
49
    {
50
        return $this->skipOnError;
51
    }
52
53
    /**
54
     * @return Closure|null
55
     */
56
    public function getWhen(): ?Closure
57
    {
58
        return $this->when;
59
    }
60
61
    /**
62
     * Return custom rules set
63
     */
64
    abstract public function getRuleSet(): array;
65
66 1
    public function getOptions(): array
67
    {
68 1
        return (new RulesDumper())->asArray($this->getRuleSet());
69
    }
70
}
71