我使用ConfigurationInterface为我的包构建配置。我的扩展文件如下所示:
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合并。任何sugestions?
答案 0 :(得分:0)
在app/config/config.yml
文件中,您可以导入其他配置文件(即使使用其他格式):
# app/config/config.yml
import:
- { resource: path/to/my_config.yml }
但是,如果使用prepended configuration,它会更好(它会使您的捆绑包更具可重用性)。有了它,您可以为其他捆绑包的配置设置默认值。这样,用户仍然可以在需要时覆盖它。
答案 1 :(得分:0)
行。我找到了问题的临时解决方案。看起来像这样
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,解析文件解析为数组,然后将其作为参数添加到容器中。任何sugestions?