Passed
Push — main ( 4df161...926316 )
by Dimitri
03:36
created

RequiredIfAccepted::check()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 20
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 10
CRAP Score 2

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 2
eloc 11
c 1
b 0
f 0
nc 2
nop 1
dl 0
loc 20
ccs 10
cts 10
cp 1
crap 2
rs 9.9
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
16
class RequiredIfAccepted extends AbstractRule
17
{
18
    /**
19
     * @var bool
20
     */
21
    protected $implicit = true;
22
23
    /**
24
     * @var array
25
     */
26
    protected $fillableParams = ['field'];
27
28
    /**
29
     * {@inheritDoc}
30
     */
31
    public function check($value): bool
32
    {
33 2
        $this->requireParameters($this->fillableParams);
34
35 2
        $anotherAttribute = $this->parameter('field');
36 2
        $anotherValue     = $this->getAttribute()->getValue($anotherAttribute);
37
38 2
        $this->setParameterTextValues((array) $anotherAttribute, 'other_attribute');
39
40
        if (Rule::accepted()->check($anotherValue)) {
41 2
            $validator         = $this->validation->getValidator();
0 ignored issues
show
Bug introduced by
The method getValidator() does not exist on null. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

41
            /** @scrutinizer ignore-call */ 
42
            $validator         = $this->validation->getValidator();

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
42 2
            $requiredValidator = $validator('required');
43
44 2
            $requiredValidator->setValidation($this->validation);
45 2
            $requiredValidator->setAttribute($this->attribute);
46
47 2
            return $requiredValidator->check($value);
48
        }
49
50 2
        return true;
51
    }
52
}
53