Scrutinizer GitHub App not installed

We could not synchronize checks via GitHub's checks API since Scrutinizer's GitHub App is not installed for this repository.

Install GitHub App

Completed
Pull Request — master (#963)
by Emmerson
02:39
created

Attribute::hasReference()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 2

Importance

Changes 0
Metric Value
cc 2
eloc 1
nc 2
nop 1
dl 0
loc 3
ccs 2
cts 2
cp 1
crap 2
rs 10
c 0
b 0
f 0
1
<?php
2
3
/*
4
 * This file is part of Respect/Validation.
5
 *
6
 * (c) Alexandre Gomes Gaigalas <[email protected]>
7
 *
8
 * For the full copyright and license information, please view the "LICENSE.md"
9
 * file that was distributed with this source code.
10
 */
11
12
declare(strict_types=1);
13
14
namespace Respect\Validation\Rules;
15
16
use ReflectionProperty;
17
use Respect\Validation\Exceptions\ComponentException;
18
use Respect\Validation\Validatable;
19
20
/**
21
 * Validates an object attribute, event private ones.
22
 *
23
 * @author Alexandre Gomes Gaigalas <[email protected]>
24
 * @author Henrique Moody <[email protected]>
25
 */
26
final class Attribute extends AbstractRelated
27
{
28 2
    public function __construct($reference, Validatable $validator = null, $mandatory = true)
29
    {
30 2
        if (!is_string($reference) || empty($reference)) {
31
            throw new ComponentException('Invalid attribute/property name');
32
        }
33
34 2
        parent::__construct($reference, $validator, $mandatory);
35 2
    }
36
37 5
    public function getReferenceValue($input)
38
    {
39 5
        $propertyMirror = new ReflectionProperty($input, $this->reference);
40 5
        $propertyMirror->setAccessible(true);
41
42 5
        return $propertyMirror->getValue($input);
43
    }
44
45 11
    public function hasReference($input)
46
    {
47 11
        return is_object($input) && property_exists($input, $this->reference);
48
    }
49
}
50