AcceptedIf::fillParameters()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 3
c 1
b 0
f 0
nc 1
nop 1
dl 0
loc 6
ccs 3
cts 3
cp 1
crap 1
rs 10
1
<?php
2
3
/**
4
 * This file is part of Dimtrovich/Validation.
5
 *
6
 * (c) 2023 Dimitri Sitchet Tomkeu <[email protected]>
7
 *
8
 * For the full copyright and license information, please view
9
 * the LICENSE file that was distributed with this source code.
10
 */
11
12
namespace Dimtrovich\Validation\Rules;
13
14
use Dimtrovich\Validation\Rule;
15
use Rakit\Validation\Rule as RakitRule;
16
17
class AcceptedIf extends AbstractRule
18
{
19
    /**
20
     * {@inheritDoc}
21
     */
22
    public function fillParameters(array $params): RakitRule
23
    {
24 2
        $this->params['field']  = array_shift($params);
25 2
        $this->params['values'] = $params;
26
27 2
        return $this;
28
    }
29
30
    /**
31
     * {@inheritDoc}
32
     */
33
    public function check($value): bool
34
    {
35 2
        $this->requireParameters(['field', 'values']);
36
37 2
        $anotherAttribute = $this->parameter('field');
38 2
        $definedValues    = $this->parameter('values');
39 2
        $anotherValue     = $this->getAttribute()->getValue($anotherAttribute);
40
41
        if (in_array($anotherValue, $definedValues, true)) {
42 2
            return Rule::accepted()->check($value);
43
        }
44
45 2
        return true;
46
    }
47
}
48