如何使用Symfony中的不同配置(ConfigurationInterface)在同一文件中加载不同的配置

时间:2018-02-23 13:23:54

标签: symfony symfony-components symfony-config-component

我正在使用以下Symfony组件:

"require": {
    "symfony/dependency-injection": "~3.0",
    "symfony/yaml": "~3.0",
    "symfony/config": "~3.0",
    "symfony/console": "~3.0",
    "symfony/validator": "~3.0",
    "symfony/event-dispatcher": "~3.0",
    "guzzlehttp/guzzle": "~6.0",
    "gedex/janrain-api": "~0.1",
    "monolog/monolog": "~1.0"
},

我有forms.yamlservices.yaml。服务配置文件包含有关DependencyInjection组件要加载的服务的信息。但是表单配置文件具有我的Forms服务的自定义定义(使用自定义配置类。

我想知道我是否可以将servicesforms合并到一个config.yaml中,并且DependencyInjectionForms仍可以获取其配置。

谢谢!

1 个答案:

答案 0 :(得分:0)

config.yaml除了parameters之外定义的任何内容都需要由Extension使用。

Extension收到属于它的配置部分(由getAlias方法定义)。

然后,扩展程序可以调用Configurator,它将处理一个众所周知的"配置,你可以添加默认值等。这将返回一个配置数组。

然后,您可以在容器中设置具有此配置数组的参数。 Extension接收的容器是空的,然后与真实的容器合并,接收参数。

然后,您可以添加CompilerPass并使用这些参数将它们绑定到您的服务。