Completed
Push — master ( 86cfb6...ebc154 )
by Dmitry
03:36
created

Bootstrap   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 24
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 2

Test Coverage

Coverage 0%

Importance

Changes 4
Bugs 0 Features 0
Metric Value
wmc 4
c 4
b 0
f 0
lcom 0
cbo 2
dl 0
loc 24
ccs 0
cts 18
cp 0
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A run() 0 21 4
1
<?php
2
3
namespace Basis\Jobs\Module;
4
5
use Basis\Converter;
6
use Basis\Filesystem;
7
use Basis\Service;
8
use Basis\Runner;
9
use Exception;
10
use ReflectionClass;
11
use ReflectionProperty;
12
13
class Bootstrap
14
{
15
    public function run(Runner $runner, Service $service, Event $event)
16
    {
17
        $runner->dispatch('tarantool.migrate');
18
19
        $meta = $runner->dispatch('module.meta');
20
        foreach ($meta['jobs'] as $job) {
21
            $class = new ReflectionClass($runner->getJobClass($job));
22
            $params = [];
23
            foreach ($class->getProperties(ReflectionProperty::IS_PUBLIC) as $property) {
24
                $params[] = $property->getName();
25
            }
26
            $service->registerJob($job, $params);
27
        }
28
29
        foreach ($event->getSubscription() as $event => $listeners) {
30
            $service->subscribe($event);
31
        }
32
33
        $assets = $runner->dispatch('module.assets');
34
        $service->updateAssetsVersion($assets['hash']);
35
    }
36
}
37