IrsteaPlantUmlExtension.php 1.84 KiB
<?php
/*
 * Copyright (C) 2016-2017 IRSTEA
 * All rights reserved.
 */
namespace Irstea\PlantUmlBundle\DependencyInjection;
use Irstea\PlantUmlBundle\DependencyInjection\Builder\ClassFilterBuilder;
use Irstea\PlantUmlBundle\DependencyInjection\Builder\GraphDefinitionBuilder;
use Symfony\Component\Config\FileLocator;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Extension\Extension;
use Symfony\Component\DependencyInjection\Loader;
/**
 * Description of IrsteaPlantUmlExtension.
class IrsteaPlantUmlExtension extends Extension
    public function load(array $configs, ContainerBuilder $container)
        $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config'));
        $loader->load('services.yml');
        $configuration = new Configuration();
        $config = $this->processConfiguration($configuration, $configs);
        $container->setParameter('irstea_plant_uml.binaries.java', $config['binaries']['java']);
        $container->setParameter('irstea_plant_uml.binaries.plamtuml_jar', $config['binaries']['plamtuml_jar']);
        $container->setParameter('irstea_plant_uml.binaries.dot', $config['binaries']['dot']);
        $container->setParameter('irstea_plant_uml.output.directory', $config['output']['directory']);
        $container->setParameter('irstea_plant_uml.output.format', $config['output']['format']);
        $container->setParameter('irstea_plant_uml.graph_keys', array_keys($config['graphs']));
        $filterBuilder = new ClassFilterBuilder($container);
        foreach ($config['graphs'] as $key => $graph) {
            $id = "irstea_plant_uml.graph.$key";
            $builder = new GraphDefinitionBuilder($container, $id, $graph, $filterBuilder);
            $container->setDefinition($id, $builder->build());