【问题标题】:Symfony how to extend default bundle config?Symfony 如何扩展默认捆绑配置?
【发布时间】:2015-10-20 16:12:23
【问题描述】:

假设我有一个通过 DependencyInjection/VendorAcmeExtension.php 加载的服务配置包

Configuration.php 类加载一些参数默认值(值数组)。

问题:如何扩展默认值?理论上我必须通过 config.yml 设置参数值,但这会覆盖默认值。但我需要将我的值添加到默认值数组而不是覆盖这个默认数组

更新

对不起我的英语(

例如,供应商捆绑包具有加载默认值的 Configuration.php:

    $rootNode
        ->children()
                ...
                ->defaultValue(
                    array(
                        'entity'=>array(
                            'label' => 'oro.user.privileges.entity.label',
                            'view_type' => 'grid',
                            'types' => array('entity'),
                            'field_type' => 'oro_acl_access_level_selector',
                            'fix_values' => false,
                            'default_value' => 5,
                            'show_default' => true,
                        ),
                        'action'=>array(
                            'label' => 'oro.user.privileges.action.label',
                            'view_type' => 'list',
                            'types' => array('action'),
                            'field_type' => 'oro_acl_access_level_selector',
                            'fix_values' => false,
                            'default_value' => 1,
                            'show_default' => false,
                        )
                    )
                )
                ...

这个默认值包含一个数组 我需要向这个数组添加新元素。如果我在 config.yml 中执行此操作 - 我将覆盖默认值。但我只想推新元素

【问题讨论】:

  • 嗯?什么?需要将我的值添加到默认值数组吗?请多解释一下
  • 对不起,我更新了问题

标签: symfony


【解决方案1】:

如果您需要覆盖捆绑包的某些部分,您可以bundle inheritance,但这在 IMO 中非常罕见。

要覆盖默认配置,你可以定义一个prepended configuration 方法;这就像你在 config.yml 文件的顶部放置一个配置块一样(有点)。

【讨论】:

  • 就是这样!谢谢,我今天试试。这本手册看起来像我要找的东西
猜你喜欢
  • 1970-01-01
  • 2017-09-15
  • 2013-09-10
  • 2017-05-21
  • 1970-01-01
  • 2016-05-18
  • 2012-02-19
  • 1970-01-01
  • 2019-11-18
相关资源
最近更新 更多