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 (#494)
by Jérémiah
18:56
created

Resolver::isWritable()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
eloc 1
dl 0
loc 3
ccs 2
cts 2
cp 1
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 2
crap 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Overblog\GraphQLBundle\Resolver;
6
7
use GraphQL\Type\Definition\ResolveInfo;
8
use Symfony\Component\PropertyAccess\PropertyAccess;
9
use Symfony\Component\PropertyAccess\PropertyAccessor;
10
11
class Resolver
12
{
13
    /** @var PropertyAccessor */
14
    private static $accessor;
15
16 60
    public static function defaultResolveFn($objectOrArray, $args, $context, ResolveInfo $info)
17
    {
18 60
        $fieldName = $info->fieldName;
19 60
        $value = static::valueFromObjectOrArray($objectOrArray, $fieldName);
20
21 60
        return $value instanceof \Closure ? $value($objectOrArray, $args, $context, $info) : $value;
22
    }
23
24 61
    public static function valueFromObjectOrArray($objectOrArray, $fieldName)
25
    {
26 61
        $value = null;
27 61
        $index = \sprintf('[%s]', $fieldName);
28
29 61
        if (self::isReadable($objectOrArray, $index)) {
30 35
            $value = self::getAccessor()->getValue($objectOrArray, $index);
31 36
        } elseif (\is_object($objectOrArray) && self::isReadable($objectOrArray, $fieldName)) {
32 34
            $value = self::getAccessor()->getValue($objectOrArray, $fieldName);
33
        }
34
35 61
        return $value;
36
    }
37
38 6
    public static function setObjectOrArrayValue(&$objectOrArray, $fieldName, $value): void
39
    {
40 6
        $index = \sprintf('[%s]', $fieldName);
41
42 6
        if (self::isWritable($objectOrArray, $index)) {
43 6
            self::getAccessor()->setValue($objectOrArray, $index, $value);
44 1
        } elseif (\is_object($objectOrArray) && self::isWritable($objectOrArray, $fieldName)) {
45 1
            self::getAccessor()->setValue($objectOrArray, $fieldName, $value);
46
        }
47 6
    }
48
49 61
    private static function isReadable($objectOrArray, $indexOrProperty)
50
    {
51 61
        return self::getAccessor()->isReadable($objectOrArray, $indexOrProperty);
52
    }
53
54 6
    private static function isWritable($objectOrArray, $indexOrProperty)
55
    {
56 6
        return self::getAccessor()->isWritable($objectOrArray, $indexOrProperty);
57
    }
58
59 62
    private static function getAccessor()
60
    {
61 62
        if (null === self::$accessor) {
62 1
            self::$accessor = PropertyAccess::createPropertyAccessor();
63
        }
64
65 62
        return self::$accessor;
66
    }
67
}
68