合并symfony2中的配置文件 [英] Merge config files in 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屋!