根据symfony2控制器中的值加载配置/参数yml

时间:2012-05-11 14:25:41

标签: php symfony

我想创建这个:

MyBundle/resources/config/settings/site1.yml
MyBundle/resources/config/settings/site2.yml
MyBundle/resources/config/settings/site3.yml

我可以在每个人的内部:

parameterWidth: 230
parameterHeight: 145

有人可以帮助我创建扩展程序,以便我可以在控制器中使用基于变量(1,2,3)的值来加载特定的配置吗?

我已经阅读了有关扩展的文档(http://symfony.com/doc/current/cookbook/bundles/extension.html),但没有一篇能帮助我。

任何帮助都会感激不尽

1 个答案:

答案 0 :(得分:1)

假设您将站点号存储在站点参数中,在您的捆绑包的DependencyInjection扩展中,您可以执行以下操作:

public function load(array $configs, ContainerBuilder $container)
{
    $configuration = new Configuration();
    $this->processConfiguration($configuration, $configs);

    $file = 'default.yml';
    if ($container->hasParameter('site')) {
        $file = 'site'.$container->getParameter('site');
    }

    $loader = new Loader\XmlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config/settings'));
    $loader->load($file);
}