Symfony2-更改供应商捆绑包的配置

Symfony2-更改供应商捆绑包的配置,symfony,dependency-injection,bundles,Symfony,Dependency Injection,Bundles,我面临一个问题:我需要更改供应商包配置。我怎样才能正确地做到这一点 供应商包配置: namespace Oro\Bundle\DataGridBundle\Extension\Toolbar; use Symfony\Component\Config\Definition\Builder\TreeBuilder; use Symfony\Component\Config\Definition\ConfigurationInterface; use Oro\Bundle\ConfigBundl

我面临一个问题:我需要更改供应商包配置。我怎样才能正确地做到这一点

供应商包配置:

namespace Oro\Bundle\DataGridBundle\Extension\Toolbar;

use Symfony\Component\Config\Definition\Builder\TreeBuilder;
use Symfony\Component\Config\Definition\ConfigurationInterface;

use Oro\Bundle\ConfigBundle\Config\ConfigManager;

class Configuration implements ConfigurationInterface
{
    /** @var int */
    private $defaultPerPage;

    /**
     * @param ConfigManager $cm
     */
    public function __construct(ConfigManager $cm)
    {
        $this->defaultPerPage = $cm->get('oro_data_grid.default_per_page');
    }

    /**
     * {@inheritDoc}
     */
    public function getConfigTreeBuilder()
    {
        $builder = new TreeBuilder();

        $builder->root('toolbarOptions')
            ->children()
                ->booleanNode('hide')->defaultFalse()->end()
                ->booleanNode('addResetAction')->defaultTrue()->end()
                ->booleanNode('addRefreshAction')->defaultTrue()->end()
                ->integerNode('turnOffToolbarRecordsNumber')->defaultValue(0)->end()
                ->arrayNode('pageSize')->addDefaultsIfNotSet()
                    ->children()
                        ->booleanNode('hide')->defaultFalse()->end()
                        ->scalarNode('default_per_page')->defaultValue($this->defaultPerPage)->end()
                        ->arrayNode('items')
                            ->defaultValue([10, 25, 50, 100])
                            ->prototype('variable')->end()
                        ->end()
                    ->end()
                ->end()
                ->arrayNode('pagination')
                    ->addDefaultsIfNotSet()
                    ->children()
                        ->booleanNode('hide')->defaultFalse()->end()
                    ->end()
                ->end()
            ->end();

        return $builder;
    }
}

问题是-如何在不编辑bundle configuration.php的情况下将
->arrayNode('items')
更改为自定义数组?

您不需要更改配置生成器,只需根据需要进行配置即可:

bundle_name:
    toolbarOptions:
        pageSize:
            items: [10, 25, 50, 100, 500, 1000]

查看:
http://symfony.com/doc/current/cookbook/bundles/override.html
为什么需要覆盖此部分配置?你想干什么?更改
app/config.yml
中的值是否会按预期工作?@Touki,因为config.yml中不存在这些参数。据我所知-此配置树是“动态”构建的…@StepanYudin仍然无法解决问题的根源。您不太可能必须更改另一个捆绑包的配置定义。你到底想达到什么目的?将从数据库/parameters.yml数组值中自定义加载
$items
?还是要更改项目的原型?@Touki,好的,这个数组只是表示分页组件的“每页视图”值。我只想添加新值500和1000,而不更改包的源代码。请查看主题的最后一条注释