Completed
Push — master ( c7f0ae...412313 )
by James
9s
created

DirectoryReflectorFactory::__invoke()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 8
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 6
nc 1
nop 1
dl 0
loc 8
rs 9.4285
c 0
b 0
f 0
1
<?php
2
declare(strict_types=1);
3
4
namespace Roave\ApiCompare\Factory;
5
6
use Roave\BetterReflection\BetterReflection;
7
use Roave\BetterReflection\Reflector\ClassReflector;
8
use Roave\BetterReflection\SourceLocator\Type\AggregateSourceLocator;
9
use Roave\BetterReflection\SourceLocator\Type\DirectoriesSourceLocator;
10
use Roave\BetterReflection\SourceLocator\Type\EvaledCodeSourceLocator;
11
use Roave\BetterReflection\SourceLocator\Type\PhpInternalSourceLocator;
12
13
/**
14
 * @codeCoverageIgnore
15
 */
16
final class DirectoryReflectorFactory
17
{
18
    public function __invoke(string $directory): ClassReflector
19
    {
20
        $astLocator = (new BetterReflection())->astLocator();
21
        return new ClassReflector(
22
            new AggregateSourceLocator([
23
                new PhpInternalSourceLocator($astLocator),
24
                new EvaledCodeSourceLocator($astLocator),
25
                new DirectoriesSourceLocator([$directory], $astLocator),
26
            ])
27
        );
28
    }
29
}
30