EventDispatcherServiceProvider   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 22
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 7
c 1
b 0
f 0
dl 0
loc 22
rs 10
wmc 4

1 Method

Rating   Name   Duplication   Size   Complexity  
A register() 0 12 4
1
<?php
2
3
/*
4
 * This file is part of the overtrue/wechat.
5
 *
6
 * (c) overtrue <[email protected]>
7
 *
8
 * This source file is subject to the MIT license that is bundled
9
 * with this source code in the file LICENSE.
10
 */
11
12
namespace EasyWeChat\Kernel\Providers;
13
14
use Pimple\Container;
15
use Pimple\ServiceProviderInterface;
16
use Symfony\Component\EventDispatcher\EventDispatcher;
17
18
/**
19
 * Class EventDispatcherServiceProvider.
20
 *
21
 * @author mingyoung <[email protected]>
22
 */
23
class EventDispatcherServiceProvider implements ServiceProviderInterface
24
{
25
    /**
26
     * Registers services on the given container.
27
     *
28
     * This method should only be used to configure services and parameters.
29
     * It should not get services.
30
     *
31
     * @param Container $pimple A container instance
32
     */
33
    public function register(Container $pimple)
34
    {
35
        !isset($pimple['events']) && $pimple['events'] = function ($app) {
36
            $dispatcher = new EventDispatcher();
37
38
            foreach ($app->config->get('events.listen', []) as $event => $listeners) {
39
                foreach ($listeners as $listener) {
40
                    $dispatcher->addListener($event, $listener);
41
                }
42
            }
43
44
            return $dispatcher;
45
        };
46
    }
47
}
48