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

Bootstrap::run()   A

Complexity

Conditions 4
Paths 6

Size

Total Lines 21
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 20

Importance

Changes 4
Bugs 0 Features 0
Metric Value
c 4
b 0
f 0
dl 0
loc 21
ccs 0
cts 18
cp 0
rs 9.0534
cc 4
eloc 13
nc 6
nop 3
crap 20
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