Completed
Push — master ( f73df0...286c6f )
by Markus
23s queued 12s
created

SchedulerServiceProvider::createCommands()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 14
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 7
dl 0
loc 14
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 1
1
<?php
2
3
namespace Jellyfish\Scheduler;
4
5
use Jellyfish\Scheduler\Command\RunSchedulerCommand;
6
use Pimple\Container;
7
use Pimple\ServiceProviderInterface;
8
9
class SchedulerServiceProvider implements ServiceProviderInterface
10
{
11
    /**
12
     * @param \Pimple\Container $pimple
13
     *
14
     * @return void
15
     */
16
    public function register(Container $pimple): void
17
    {
18
        $this->registerScheduler($pimple)
19
            ->registerCommands($pimple);
20
    }
21
22
    /**
23
     * @param \Pimple\Container $container
24
     *
25
     * @return \Jellyfish\Scheduler\SchedulerServiceProvider
26
     */
27
    protected function registerScheduler(Container $container): SchedulerServiceProvider
28
    {
29
        $container->offsetSet('scheduler', function () {
30
            return new Scheduler();
31
        });
32
33
        return $this;
34
    }
35
36
    /**
37
     * @param \Pimple\Container $container
38
     *
39
     * @return \Jellyfish\Scheduler\SchedulerServiceProvider
40
     */
41
    protected function registerCommands(Container $container): SchedulerServiceProvider
42
    {
43
        $container->extend('commands', function (array $commands, Container $container) {
44
            $commands[] = new RunSchedulerCommand(
45
                $container->offsetGet('scheduler'),
46
                $container->offsetGet('lock_factory'),
47
                $container->offsetGet('logger')
48
            );
49
50
            return $commands;
51
        });
52
53
        return $this;
54
    }
55
}
56