Passed
Push — master ( d8fa97...555fd2 )
by Yo
01:32
created

ClassComparatorTrait::getMatchingClassNameIn()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 16
Code Lines 10

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 11
CRAP Score 2

Importance

Changes 0
Metric Value
cc 2
eloc 10
nc 2
nop 2
dl 0
loc 16
ccs 11
cts 11
cp 1
crap 2
rs 9.9332
c 0
b 0
f 0
1
<?php
2
namespace Yoanm\JsonRpcParamsSymfonyConstraintDoc\App\Helper;
3
4
/**
5
 * Trait ClassComparatorTrait
6
 */
7
trait ClassComparatorTrait
8
{
9
    /**
10
     * @param       $object
11
     * @param array $classList
12
     *
13
     * @return string|null
14
     */
15 79
    protected function getMatchingClassNameIn($object, array $classList) : ?string
16
    {
17 79
        $actualClassList = array_merge(
18 79
            [get_class($object)],
19 79
            class_implements($object),
20 79
            class_uses($object)
21
        );
22 79
        $parentClass = get_parent_class($object);
23 79
        while (false !== $parentClass) {
24 79
            $actualClassList[] = $parentClass;
25 79
            $parentClass = get_parent_class($parentClass);
26
        }
27
28 79
        $matchList = array_intersect($actualClassList, $classList);
29
30 79
        return array_pop($matchList);
31
    }
32
}
33