Passed
Pull Request — master (#7)
by nicolas
02:24
created

DekaleeMailjetExtension::load()   B

Complexity

Conditions 7
Paths 8

Size

Total Lines 37

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 37
rs 8.3946
c 0
b 0
f 0
cc 7
nc 8
nop 2
1
<?php
2
3
namespace Dekalee\MailjetBundle\DependencyInjection;
4
5
use Dekalee\MailjetBundle\Guesser\Strategy\SimpleTemplateGuesser;
6
use Dekalee\MailjetBundle\Guesser\TemplateIdGuesserInterface;
7
use Symfony\Component\DependencyInjection\ContainerBuilder;
8
use Symfony\Component\Config\FileLocator;
9
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
10
use Symfony\Component\DependencyInjection\Loader;
11
use Symfony\Component\HttpKernel\Kernel;
12
13
/**
14
 * This is the class that loads and manages your bundle configuration
15
 *
16
 * To learn more see {@link http://symfony.com/doc/current/cookbook/bundles/extension.html}
17
 */
18
class DekaleeMailjetExtension extends Extension
19
{
20
    /**
21
     * {@inheritdoc}
22
     */
23
    public function load(array $configs, ContainerBuilder $container)
24
    {
25
        $configuration = new Configuration();
26
        $config = $this->processConfiguration($configuration, $configs);
27
        
28
        $container->setParameter('dekalee_mailjet.key.api', $config['api_key']);
29
        $container->setParameter('dekalee_mailjet.key.secret', $config['secret_key']);
30
        $container->setParameter('dekalee_mailjet.template.fallback', $config['base_template_id']);
31
        $container->setParameter('dekalee_mailjet.debug.reporting_email', $config['reporting_email']);
32
        $container->setParameter('dekalee_mailjet.debug.force_deliver', $config['force_deliver']);
33
34
        $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
35
        $loader->load('client.yml');
36
        $loader->load('transport.yml');
37
        $loader->load('guesser.yml');
38
        $loader->load('creator.yml');
39
        $loader->load('data_collector.yml');
40
41
        if (4 === Kernel::MAJOR_VERSION || array_key_exists('DoctrineBundle', $container->getParameter('kernel.bundles'))) {
42
            $loader->load('convertor.yml');
43
            $loader->load('repository.yml');
44
            $loader->load('manager.yml');
45
        }
46
        if (3 < Kernel::MAJOR_VERSION || (3 === Kernel::MAJOR_VERSION && 3 <= Kernel::MINOR_VERSION)) {
47
            $container->registerForAutoconfiguration(TemplateIdGuesserInterface::CLASS)->addTag('dekalee_mailjet.guesser.template_id.strategy');
48
        }
49
50
        foreach ($config['simple_template_choice'] as $class => $templateId) {
51
            $container
52
                ->register('dekalee.mailjet.simple_choice.' . $class, SimpleTemplateGuesser::CLASS)
53
                ->setArguments([
54
                    $class,
55
                    $templateId
56
                ])
57
                ->addTag('dekalee_mailjet.guesser.template_id.strategy');
58
        }
59
    }
60
}
61