合并symfony2中的配置文件 [英] Merge config files in symfony2

查看:54
本文介绍了合并symfony2中的配置文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用ConfigurationInterface为我的捆绑包构建配置.我的扩展名文件如下所示:

I build config for my bundle using ConfigurationInterface. My extension file look like this:

public function load(array $configs, ContainerBuilder $container) {
    $configuration = new Configuration();
    $config = $this->processConfiguration($configuration, $configs);
    $container->setParameter('my_admin_included_bundles', $config['included_bundles_namespace']);
    $container->setParameter('my_admin_widget_script_file', $config['widget_script_file']);
    $container->setParameter('my_admin_widgets', $config['widgets']);
    $container->setParameter('my_admin_menu', $config['menu']); 
}

public function getAlias() {
    return 'my_admin';
}

我通过将配置参数放入(全局)app/config.yml进行测试,它可以正常工作.但是我想将这些参数放入MyBundle \ Resources \ Config \ my_config.yml之类的自定义文件中,然后将此文件与global合并.有任何建议吗?

I test it out by putting my config params into (global) app/config.yml, and it work's. But i want to putt those parameters in to custom file like MyBundle\Resources\Config\my_config.yml and merge this file with global. Any sugestions?

推荐答案

确定.我找到了解决该问题的临时方法.看起来像这样

OK. I found a temporary solution to the problem. It looks like this

use Symfony\Component\Yaml\Parser;    

public function load(array $configs, ContainerBuilder $container) {       
            $yaml = new Parser();
            $configs = $yaml->parse(file_get_contents(__DIR__ . '/../Resources/config/config.yml'));

            $configuration = new Configuration();
            $config = $this->processConfiguration($configuration, $configs);
            $container->setParameter('my_cms_widget_script_file', $config['widget_script_file']);
            $container->setParameter('my_cms_layout_list', $config['layout_list']);
            $container->setParameter('my_cms_default_layout', $config['default_layout']);
            $container->setParameter('my_cms_widgets', $config['widgets']);
            $container->setParameter('my_cms_menu', $config['menu']);
        }

我将自定义config.yml解析为数组,然后将其作为参数添加到容器中.有任何建议吗?

I take my custom config.yml, parse file to array, then add as parameter to the container. Any sugestions?

这篇关于合并symfony2中的配置文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆