SendyExtension   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 22
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 10
c 1
b 0
f 0
dl 0
loc 22
rs 10
wmc 3

1 Method

Rating   Name   Duplication   Size   Complexity  
A load() 0 15 3
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Sendy\SendyBundle\DependencyInjection;
6
7
use Symfony\Component\Config\FileLocator;
8
use Symfony\Component\DependencyInjection\ContainerBuilder;
9
use Symfony\Component\DependencyInjection\Loader;
10
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
11
12
final class SendyExtension extends Extension
13
{
14
    /**
15
     * @param array<mixed> $configs
16
     *
17
     * @throws \Exception
18
     */
19
    public function load(array $configs, ContainerBuilder $container): void
20
    {
21
        $configuration = new Configuration();
22
        $config = $this->processConfiguration($configuration, $configs);
23
24
        $loader = new Loader\XmlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
25
        $loader->load('services.xml');
26
27
        if ($config['api_host'] && 0 !== strncmp($config['api_host'], 'https', 5)) {
28
            $config['api_host'] = 'https://'.$config['api_host'];
29
        }
30
31
        $container->setParameter('sendy.api_key', $config['api_key']);
32
        $container->setParameter('sendy.api_host', trim($config['api_host'], '/'));
33
        $container->setParameter('sendy.list_id', $config['list_id']);
34
    }
35
}
36