1

我想解析这个结构的配置:

$config = [
    'streams' => [
        'foo' => [
            [
                'id' => 'some-identifier',
                'type' => 'a',
            ],
            [
                'id' => 'some-other-identifier',
                'type' => 'b',
            ],
        ],
        'bar' => ...,
    ],
];

在这个数组streams中是一个预定义的键并包含多个任意命名的流的映射。在这种情况下,有两个流被调用foobar定义。

每个流都有一组处理程序。每个处理程序都是一个具有 2 个属性的映射:idtype.

我最终得到:

$rootNode
    ->children()
        ->arrayNode('streams')
            ->prototype('array')
                ->children()

                ->end()
            ->end()
        ->end()
    ->end()
;

现在我陷入了下一步的困境。

如果我用英语解释它会是:streams是地图数组的地图。

使用我的代码,我可以将其表达为“是一张地图”,并且卡住了如何说它是“数组的”。

有什么提示吗?

4

1 回答 1

3

这就是如何。

$rootNode
    ->children()
        ->arrayNode('streams')
            ->prototype('array')
                ->prototype('array')
                    ->children()
                        ->scalarNode('id')->end()
                        ->scalarNode('type')->end()
                    ->end()
                ->end()
            ->end()
        ->end()
    ->end()
;

注意外层prototype('array')没有children()

于 2015-06-24T02:09:59.510 回答