Newer
Older
<?php
/*
* © 2016 IRSTEA
* Guillaume Perréal <guillaume.perreal@irstea.fr>
* Tous droits réservés.
*/
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
*
* @author Guillaume Perréal <guillaume.perreal@irstea.fr>
*/
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());