Completed
Push — dev ( 64bfb0...f56b7a )
by Андрей
11:34
created

DefaultExecutorConfigurationFactory   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 28
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 5

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 2
c 1
b 0
f 0
lcom 0
cbo 5
dl 0
loc 28
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A createService() 0 21 2
1
<?php
2
/**
3
 * @link    https://github.com/nnx-framework/doctrine-fixture-module
4
 * @author  Malofeykin Andrey  <[email protected]>
5
 */
6
namespace Nnx\DoctrineFixtureModule\Executor;
7
8
use Zend\ServiceManager\FactoryInterface;
9
use Zend\ServiceManager\ServiceLocatorInterface;
10
use Nnx\ModuleOptions\ModuleOptionsPluginManagerInterface;
11
use Nnx\DoctrineFixtureModule\Options\ModuleOptions;
12
use Doctrine\Common\EventSubscriber;
13
14
/**
15
 * Class DefaultExecutorConfigurationFactory
16
 *
17
 * @package Nnx\DoctrineFixtureModule\Executor
18
 */
19
class DefaultExecutorConfigurationFactory implements FactoryInterface
20
{
21
    /**
22
     * @inheritDoc
23
     * @throws \Zend\ServiceManager\Exception\ServiceNotFoundException
24
     */
25
    public function createService(ServiceLocatorInterface $serviceLocator)
26
    {
27
        $defaultExecutorConfiguration = new DefaultExecutorConfiguration();
28
29
        $eventManager = $defaultExecutorConfiguration->getEventManager();
30
31
        /** @var ModuleOptionsPluginManagerInterface $moduleOptionsPluginManager */
32
        $moduleOptionsPluginManager = $serviceLocator->get(ModuleOptionsPluginManagerInterface::class);
33
        /** @var ModuleOptions $moduleOptions */
34
        $moduleOptions = $moduleOptionsPluginManager->get(ModuleOptions::class);
35
36
        $defaultFixtureEventListeners = $moduleOptions->getDefaultFixtureEventListeners();
37
38
        foreach ($defaultFixtureEventListeners as $listenerName) {
39
            /** @var EventSubscriber $listener */
40
            $listener = $serviceLocator->get($listenerName);
41
            $eventManager->addEventSubscriber($listener);
42
        }
43
44
        return $defaultExecutorConfiguration;
45
    }
46
}
47