Symfony 使用配置组件定义和处理配置值

Symfony 使用配置组件定义和处理配置值,symfony,Symfony,我试图公开我的捆绑包的一些配置,允许用户定义实体名称以及属性和值之间的多个关联。基本上,用户可以为每个实体定义排序和顺序字段。例如: 对于实体AcmeDemoBundle:Project,我想按“name DESC”和“id ASC”排序 或 如何解析上述配置的treebuilder 我可以通过以下示例获得类似的解决方案: acme_demo_default_sort: entities: AcmeDemoBundle:Project: defau

我试图公开我的捆绑包的一些配置,允许用户定义实体名称以及属性和值之间的多个关联。基本上,用户可以为每个实体定义排序和顺序字段。例如: 对于实体AcmeDemoBundle:Project,我想按“name DESC”和“id ASC”排序

如何解析上述配置的treebuilder

我可以通过以下示例获得类似的解决方案:

acme_demo_default_sort:
    entities:
        AcmeDemoBundle:Project:
            defaults:
                - 
                    property: name
                    order: desc


$rootNode
            ->children()
                ->arrayNode('entities')                    
                    ->prototype('array')
                        ->children()    
                            ->arrayNode('defaults')
                                ->prototype('array')
                                    ->children()
                                        ->scalarNode('property')->end()
                                        ->scalarNode('order')->end()
                                    ->end()
                                ->end()
                            ->end()
                        ->end()
                    ->end()
                ->end()
            ->end()
        ;

谢谢。

为什么不能使用带有默认值的解决方案?因为它更干净,没有默认值键。为什么不能使用带有默认值的解决方案?因为它更干净,没有默认值键。
acme_demo_default_sort:
    entities:
        AcmeDemoBundle:Project:
           name: desc
           id: asc
acme_demo_default_sort:
    entities:
        AcmeDemoBundle:Project:
            defaults:
                - 
                    property: name
                    order: desc


$rootNode
            ->children()
                ->arrayNode('entities')                    
                    ->prototype('array')
                        ->children()    
                            ->arrayNode('defaults')
                                ->prototype('array')
                                    ->children()
                                        ->scalarNode('property')->end()
                                        ->scalarNode('order')->end()
                                    ->end()
                                ->end()
                            ->end()
                        ->end()
                    ->end()
                ->end()
            ->end()
        ;