我正在创建具有许多配置参数的可重用Symfony包,我也需要它们在框架和twig包中。
以下是我的配置当前外观的一个工作示例(app / config / config.yml):
# my bundle parameters
parameters:
locales_active:
- en_US
- de_DE
locale_default: en_US
locale_fallback: de_DE
google_maps_api_key: some_value
google_translate_api_key: some_value
# framework parameters
framework:
translator: { fallbacks: ['%locale_fallback%']
default_locale: "%locale_default%"
# twig parameters
twig:
globals:
locales_active: '%locales_active%'
google_maps_api_key: '%google_maps_api_key%'
google_translate_api_key: '%google_translate_api_key%'
这种方法有效,但我希望尽可能简单地安装此捆绑包(这里只是参数的一小部分,实际上还有更多参数)。
我想做的是:
1)只在config.yml中创建这部分代码(将bundle参数从全局"参数:")移动到它自己的命名空间:
acme_core:
locales_active:
- en_US
- de_DE
locale_default: en_US
locale_fallback: de_DE
google_maps_api_key: some_value
google_translate_api_key: some_value
2)在不编辑配置文件的情况下动态地将这些参数分配给框架或树枝。例如,如果可能的话,可能在DependencyInjection / Configuration.php中。
如何实现这一目标?
答案 0 :(得分:0)
很容易实现。只是玩弄它。
您需要使用DependencyInjection / Configuration和AcmeCoreExtension。
public function load(array $configs, ContainerBuilder $container) { $configuration = new Configuration(); $config = $this->processConfiguration($configuration, $configs); // merge your configs here (or something similar) // $config['twig']['globals']['locales_active'] = }