从YAML文件加载自定义配置块

时间:2019-11-28 16:03:50

标签: php symfony yaml symfony4 configuration-files

我需要从位于自定义捆绑包中的配置文件中加载自定义块,我的捆绑包中包含以下代码:

class ExampleAdminExtension extends Extension {

    /**
     * Loads a specific configuration.
     *
     * @throws \InvalidArgumentException When provided tag is not defined in this extension
     */
    public function load(array $configs, ContainerBuilder $container) {
        $loader = new YamlFileLoader( $container, new FileLocator(__DIR__.'/../Resources/config') );
        $loader->load('custom.yaml');
    }
}

然后custom.yaml:

parameters:
  allowTraps: 
    - 'Eeeeh?'
    - 'Easy modo??'
    - 'How lame!'

确实可以,parameters中包含所有内容,我可以去一个随机控制器,然后使用以下命令打印其记录:

$trapsAllowed = $this->getParameter('allowTraps');
dump($trapsAllowed);

这里的问题是,当我像这样在parameters外部添加自定义块时:

parameters:
  allowTraps: 
    - 'Eeeeh?'
    - 'Easy modo??'
    - 'How lame!'

items:
  - 'Maruchan'
  - 'How to turn off my chainsaw??'
  - 'Heelppplp'

它抛出一个错误,指出:

There is no extension able to load the configuration for "items". Looked for namespace "items", found none

我想知道如何实现此目标,让自定义配置块成功加载,就像将其放入parameters块一样。

0 个答案:

没有答案