<?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()); } } }