如何在 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.yaml
和 services.yaml
。服务配置文件包含有关要由 DependencyInjection
组件加载的服务的信息。但是 Forms 配置文件有我的 Forms
服务的自定义定义(它使用自定义配置 class.
我想知道我是否可以将 services
和 forms
合并为一个 config.yaml
并且仍然让 DependencyInjection
和 Forms
得到他们的配置。
谢谢!
除 parameters
之外 config.yaml
中定义的任何内容都需要由 Extension
使用。
Extension
接收属于它的config部分(由getAlias
方法定义)。
然后扩展程序可以调用 Configurator
来处理 "well known" 配置,您可以添加默认值等。这将 return 一个配置数组。
然后你可以在容器中设置一个参数,有这个配置数组。 Extension 接收的容器是一个空容器,然后与真实容器合并,接收参数。
然后您可以添加一个 CompilerPass
并使用这些参数将它们绑定到您的服务。
我正在使用以下 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.yaml
和 services.yaml
。服务配置文件包含有关要由 DependencyInjection
组件加载的服务的信息。但是 Forms 配置文件有我的 Forms
服务的自定义定义(它使用自定义配置 class.
我想知道我是否可以将 services
和 forms
合并为一个 config.yaml
并且仍然让 DependencyInjection
和 Forms
得到他们的配置。
谢谢!
除 parameters
之外 config.yaml
中定义的任何内容都需要由 Extension
使用。
Extension
接收属于它的config部分(由getAlias
方法定义)。
然后扩展程序可以调用 Configurator
来处理 "well known" 配置,您可以添加默认值等。这将 return 一个配置数组。
然后你可以在容器中设置一个参数,有这个配置数组。 Extension 接收的容器是一个空容器,然后与真实容器合并,接收参数。
然后您可以添加一个 CompilerPass
并使用这些参数将它们绑定到您的服务。