ClassFinder::getAllClassFromNamespace()   A
last analyzed

Complexity

Conditions 3
Paths 3

Size

Total Lines 9
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 3
eloc 5
c 0
b 0
f 0
nc 3
nop 2
dl 0
loc 9
rs 10
1
<?php
2
3
namespace pjpawel\LightApi\Component;
4
5
use Gnugat\NomoSpaco\File\FileRepository;
6
use Gnugat\NomoSpaco\FqcnRepository;
7
use Gnugat\NomoSpaco\Token\ParserFactory;
8
9
class ClassFinder
10
{
11
12
    /**
13
     * @param string $dir
14
     * @return string[]
15
     */
16
    public function getAllClassInDir(string $dir): array
17
    {
18
        $fqcn = new FqcnRepository(new FileRepository(), new ParserFactory());
19
        return $fqcn->findIn($dir);
20
    }
21
22
    /**
23
     * @param string $dir
24
     * @param string $className
25
     * @return string[]
26
     */
27
    public function getClassInDir(string $dir, string $className): array
28
    {
29
        $fqcn = new FqcnRepository(new FileRepository(), new ParserFactory());
30
        return $fqcn->findInFor($dir, $className);
31
    }
32
33
    public function getAllClassFromNamespace(string $namespacePrefix, array $classes): array
34
    {
35
        $searchedClasses = [];
36
        foreach ($classes as $class) {
37
            if (str_starts_with($class, $namespacePrefix)) {
38
                $searchedClasses[] = $class;
39
            }
40
        }
41
        return $searchedClasses;
42
    }
43
44
}