.
:
<?php
namespace AcmeBundle\DependencyInjection;
use Symfony\Component\Config\FileLocator;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Loader;
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
class AcmeExtension extends Extension
{
public function load(array $configs, ContainerBuilder $container)
{
$configuration = new Configuration();
$config = $this->processConfiguration($configuration, $configs);
$rootdir = $container->getParameter('kernel.root_dir');
$loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
$loader->load('services.yml');
$paramLoader = new Loader\YamlFileLoader($container, new FileLocator($rootdir.'/config'));
$parameters = sprintf('parameters_%s.yml', $container->getParameter('router.request_context.host'));
if (!file_exists($rootdir.'/config/'.$parameters)) {
$parameters = 'parameters.yml';
}
$paramLoader->load($parameters);
}
}
:
<?php
namespace AcmeBundle\DependencyInjection;
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
use Symfony\Component\Config\Definition\ConfigurationInterface;
class Configuration implements ConfigurationInterface
{
public function getConfigTreeBuilder()
{
$treeBuilder = new TreeBuilder();
$rootNode = $treeBuilder->root('acme');
return $treeBuilder;
}
}
, parameters_localhost.yml, .
, parameters.yml.
, (, _locale, ).
.