<?php
namespace Acme\TestBundle\DependencyInjection;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\Config\Resource\FileResource;
use Symfony\Component\Config\FileLocator;
use Symfony\Component\DependencyInjection\Extension\PrependExtensionInterface;
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
use Symfony\Component\DependencyInjection\Loader;
use Symfony\Component\Yaml\Yaml;
/**
* This is the class that loads and manages your bundle configuration
*
* To learn more see {@link http://symfony.com/doc/current/cookbook/bundles/extension.html}
*/
class AcmeTestExtension extends Extension implements PrependExtensionInterface
{
// ...
/**
* Allow an extension to prepend the extension configurations.
* Here we will load our template selection rules.
*
* @param ContainerBuilder $container
*/
public function prepend( ContainerBuilder $container )
{
// Loading our YAML file containing our template rules
$config$configFile = Yaml::parse( __DIR__ . '/../Resources/config/template_rules.yml';
$config = Yaml::parse( file_get_contents( $configFile ) );
// We explicitly prepend loaded configuration for "ezpublish" namespace.
// So it will be placed under the "ezpublish" configuration key, like in ezpublish.yml.
$container->prependExtensionConfig( 'ezpublish', $config );
$container->addResource( new FileResource( $configFile ) );
}
}
|