Completed
Push — master ( a2ead6...3e82b5 )
by Dmitry
03:13
created

Meta   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 31
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 2

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 7
lcom 0
cbo 2
dl 0
loc 31
ccs 17
cts 17
cp 1
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
C run() 0 28 7
1
<?php
2
3
namespace Basis\Job\Module;
4
5
use Basis\Filesystem;
6
use Basis\Job;
7
use ReflectionClass;
8
use ReflectionMethod;
9
10
class Meta extends Job
11
{
12 4
    public function run(Filesystem $fs)
13
    {
14 4
        $routes = [];
15 4
        foreach ($fs->listClasses('Controller') as $class) {
16 4
            $nick = substr(strtolower($class), 11);
17 4
            $methods = (new ReflectionClass($class))->getMethods(ReflectionMethod::IS_PUBLIC);
18 4
            foreach ($methods as $method) {
19 4
                if ($method->isConstructor()) {
20 4
                    continue;
21
                }
22 4
                if ($method->name == '__process') {
23 4
                    $routes[] = $nick.'/*';
24
                } else {
25 4
                    $routes[] = $nick.'/'.$method->name;
26
                }
27
            }
28
        }
29
30 4
        $jobs = [];
31 4
        foreach ($fs->listClasses('Job') as $class) {
32 4
            $reflection = new ReflectionClass($class);
33 4
            if (!$reflection->isAbstract()) {
34 4
                $jobs[] = str_replace('\\', '.', substr(strtolower($class), 4));
35
            }
36
        }
37
38 4
        return compact('routes', 'jobs');
39
    }
40
}
41