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

How to load different configurations in the same file using different Configurations (ConfigurationInterface) in Symfony

我正在使用以下 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 配置文件有我的 Forms 服务的自定义定义(它使用自定义配置 class.

我想知道我是否可以将 servicesforms 合并为一个 config.yaml 并且仍然让 DependencyInjectionForms 得到他们的配置。

谢谢!

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

Extension接收属于它的config部分(由getAlias方法定义)。

然后扩展程序可以调用 Configurator 来处理 "well known" 配置,您可以添加默认值等。这将 return 一个配置数组。

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

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