Passed
Push — master ( 6bb4d5...0793df )
by Artem
46s queued 11s
created

AbstractEventServiceProvider   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 34
Duplicated Lines 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
eloc 12
c 2
b 0
f 0
dl 0
loc 34
rs 10
wmc 4

2 Methods

Rating   Name   Duplication   Size   Complexity  
A register() 0 4 2
A bindEvents() 0 11 2
1
<?php
2
3
declare(strict_types=1);
4
5
namespace PrettyBx\Support\Providers;
6
7
use PrettyBx\Support\Contracts\ServiceProviderContract;
8
use PrettyBx\Support\Contracts\ConfigurationContract;
9
use PrettyBx\Support\Config\Manager as ConfigManager;
10
11
abstract class AbstractEventServiceProvider implements ServiceProviderContract
12
{
13
    /**
14
     * @var array $events
15
     */
16
    protected $events = [];
17
18
    /**
19
     * @inheritDoc
20
     */
21
    public function register(): void
22
    {
23
        if (! empty($this->events)) {
24
            $this->bindEvents();
25
        }
26
    }
27
28
    /**
29
     * Binds handlers to events
30
     *
31
     * @access	protected
32
     * @return	void
33
     */
34
    protected function bindEvents(): void
35
    {
36
        $manager = container()->make('\Bitrix\Main\EventManager');
37
38
        foreach ($this->events as $event) {
39
            $manager->addEventHandler(
40
                $event['module'], 
41
                $event['event'], 
42
                $event['handler'], 
43
                false, 
44
                $event['sort']
45
            );
46
        }
47
    }
48
}
49