Extension::getLibraryAliases()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 11
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 6
c 0
b 0
f 0
nc 2
nop 1
dl 0
loc 11
rs 10
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Gnutix\Library\DependencyInjection;
6
7
use Symfony\Component\Config\Definition\Processor;
8
use Symfony\Component\Config\FileLocator;
9
use Symfony\Component\DependencyInjection\ContainerBuilder;
10
use Symfony\Component\DependencyInjection\Extension\ExtensionInterface;
11
use Symfony\Component\DependencyInjection\Loader;
12
13
class Extension implements ExtensionInterface
14
{
15
    public function load(array $config, ContainerBuilder $container): void
16
    {
17
        $configProcessor = new Processor();
18
        $config = $configProcessor->processConfiguration(new Configuration(), $config);
19
20
        $container->setParameter('gnutix_library.source_file_path', $config['source_file_path']);
21
22
        $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
23
        $loader->load('services.yml');
24
25
        $container->setAliases($this->getLibraryAliases($config['source_file_path']));
26
    }
27
28
    public function getNamespace(): string
29
    {
30
        return '';
31
    }
32
33
    public function getXsdValidationBasePath(): string
34
    {
35
        return '';
36
    }
37
38
    public function getAlias(): string
39
    {
40
        return 'gnutix_library';
41
    }
42
43
    private function getLibraryAliases(string $sourceFilePath): array
44
    {
45
        $libraryType = strtolower(pathinfo($sourceFilePath, PATHINFO_EXTENSION));
46
47
        if ('yml' === $libraryType) {
48
            $libraryType = 'yaml';
49
        }
50
51
        return [
52
            'gnutix_library.loader' => 'gnutix_library.loader.'.$libraryType.'_file_loader',
53
            'gnutix_library.library_factory' => 'gnutix_library.library_factory.'.$libraryType.'_library_factory',
54
        ];
55
    }
56
}
57