AchievementServiceFactory::createService()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 15
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 15
rs 9.4285
cc 1
eloc 6
nc 1
nop 1
1
<?php
2
/**
3
 * AchievementServiceFactory
4
 *
5
 * @category  AxalianAchievements\Service
6
 * @package   AxalianAchievements\Service
7
 * @author    Michel Maas <[email protected]>
8
 */
9
10
namespace AxalianAchievements\ServiceFactory\Service;
11
12
use AxalianAchievements\AchievementProvider\AchievementProviderPluginManager;
13
use AxalianAchievements\Options\ModuleOptions;
14
use AxalianAchievements\Service\AchievementService;
15
use AxalianAchievements\StorageAdapter\StorageAdapterInterface;
16
use Zend\ServiceManager\FactoryInterface;
17
use Zend\ServiceManager\ServiceLocatorInterface;
18
19
class AchievementServiceFactory implements FactoryInterface
20
{
21
22
    /**
23
     * Create service
24
     *
25
     * @param ServiceLocatorInterface $serviceLocator
26
     * @return AchievementService
27
     */
28
    public function createService(ServiceLocatorInterface $serviceLocator)
29
    {
30
        /** @var AchievementProviderPluginManager $pluginManager */
31
        $pluginManager = $serviceLocator->get(
32
            'AxalianAchievements\AchievementProvider\AchievementProviderPluginManager'
33
        );
34
35
        /** @var ModuleOptions $moduleOptions */
36
        $moduleOptions = $serviceLocator->get('AxalianAchievements\Options\ModuleOptions');
37
38
        /** @var StorageAdapterInterface $storageAdapter */
39
        $storageAdapter = $serviceLocator->get($moduleOptions->getStorageAdapter());
40
41
        return new AchievementService($pluginManager, $storageAdapter);
42
    }
43
}
44