MukhinPrivatbankExtension::load()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 20
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 20
rs 9.4285
c 0
b 0
f 0
cc 2
eloc 13
nc 2
nop 2
1
<?php
2
3
namespace Mukhin\PrivatbankBundle\DependencyInjection;
4
5
use Symfony\Component\DependencyInjection\ContainerBuilder;
6
use Symfony\Component\Config\FileLocator;
7
use Symfony\Component\DependencyInjection\Definition;
8
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
9
use Symfony\Component\DependencyInjection\Loader;
10
11
class MukhinPrivatbankExtension extends Extension
12
{
13
    /**
14
     * {@inheritdoc}
15
     */
16
    public function load(array $configs, ContainerBuilder $container)
17
    {
18
        $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
19
        $loader->load('services.yml');
20
21
        $configuration = new Configuration();
22
        $config = $this->processConfiguration($configuration, $configs);
23
24
        foreach ($config['merchants'] as $name=>$parameters) {
25
            $merchantDefinition = new Definition(
26
                $container->getParameter('mukhin_privatbank.merchant.class'),
27
                [$parameters['merchant_id'], $parameters['merchant_secret'], $parameters['card_number']]
28
            );
29
            $merchantDefinition->addTag('mukhin_privatbank.merchant');
30
            $container->setDefinition(
31
                sprintf('mukhin_privatbank.merchant.%s', $name),
32
                $merchantDefinition
33
            );
34
        }
35
    }
36
}
37