Completed
Push — master ( efa664...ac0835 )
by Joachim
15:34
created

LoevgaardDandomainAltapayExtension::load()   B

Complexity

Conditions 1
Paths 1

Size

Total Lines 27
Code Lines 20

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 27
rs 8.8571
c 0
b 0
f 0
cc 1
eloc 20
nc 1
nop 2
1
<?php
2
3
namespace Loevgaard\DandomainAltapayBundle\DependencyInjection;
4
5
use Loevgaard\DandomainAltapayBundle\Entity\SiteSetting;
6
use Symfony\Component\Config\FileLocator;
7
use Symfony\Component\DependencyInjection\ContainerBuilder;
8
use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
9
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
10
11
class LoevgaardDandomainAltapayExtension extends Extension
12
{
13
    public function load(array $configs, ContainerBuilder $container)
14
    {
15
        $configuration = new Configuration();
16
        $config = $this->processConfiguration($configuration, $configs);
17
18
        $container->setParameter('loevgaard_dandomain_altapay.altapay_username', $config['altapay_username']);
19
        $container->setParameter('loevgaard_dandomain_altapay.altapay_password', $config['altapay_password']);
20
        $container->setParameter('loevgaard_dandomain_altapay.altapay_ips', $config['altapay_ips']);
21
        $container->setParameter('loevgaard_dandomain_altapay.altapay_url', $config['altapay_url']);
22
        $container->setParameter('loevgaard_dandomain_altapay.shared_key_1', $config['shared_key_1']);
23
        $container->setParameter('loevgaard_dandomain_altapay.shared_key_2', $config['shared_key_2']);
24
        $container->setParameter('loevgaard_dandomain_altapay.terminal_class', $config['terminal_class']);
25
        $container->setParameter('loevgaard_dandomain_altapay.callback_class', $config['callback_class']);
26
        $container->setParameter('loevgaard_dandomain_altapay.http_transaction_class', $config['http_transaction_class']);
27
        $container->setParameter('loevgaard_dandomain_altapay.payment_class', $config['payment_class']);
28
        $container->setParameter('loevgaard_dandomain_altapay.payment_line_class', $config['payment_line_class']);
29
        $container->setParameter('loevgaard_dandomain_altapay.cookie_payment_id', $config['cookie_payment_id']);
30
        $container->setParameter('loevgaard_dandomain_altapay.cookie_checksum_complete', $config['cookie_checksum_complete']);
31
32
        // set default settings
33
        $container->setParameter('loevgaard_dandomain_altapay.default_settings.layout.logo', $config['default_settings']['layout']['logo']);
34
35
        $this->verifyDefaultSettings($container);
36
37
        $loader = new YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
38
        $loader->load('services.yml');
39
    }
40
41
    /**
42
     * This method will verify that all available settings in the SiteSetting are defined as parameters
43
     */
44
    private function verifyDefaultSettings(ContainerBuilder $container)
45
    {
46
        $settings = SiteSetting::getSettings();
47
        foreach ($settings as $setting) {
48
            $parameter = 'loevgaard_dandomain_altapay.default_settings.'.$setting;
49
            if(!$container->hasParameter($parameter)) {
50
                throw new \RuntimeException('The parameter `'.$parameter.'` is not configured in the code');
51
            }
52
        }
53
    }
54
}
55