incenteev / dynamic-parameters-bundle
dev-master / 1.0.x-dev
2017-04-30 11:04 UTC
Requires
- symfony/config: ~2.3
- symfony/dependency-injection: ^2.6.2@dev
- symfony/expression-language: ~2.6
- symfony/http-kernel: ~2.3
- symfony/yaml: ~2.0
This package is not auto-updated.
Last update: 2022-02-01 12:43:01 UTC
README
此包提供了一种在运行时从环境变量中读取参数的方法。当环境变量不可用时,使用容器参数中定义的值作为后备。
安装
安装是一个快速(我保证!)的两步过程。
- 下载 IncenteevDynamicParametersBundle
- 启用该包
第一步:使用 composer 安装 IncenteevDynamicParametersBundle
运行以下 composer require 命令
$ composer require incenteev/dynamic-parameters-bundle
第二步:启用该包
最后,在内核中启用该包
// app/AppKernel.php public function registerBundles() { $bundles = array( // ... new Incenteev\DynamicParametersBundle\IncenteevDynamicParametersBundle(), ); }
用法
定义参数名称与环境变量配置的映射。
# app/config/config.yml incenteev_dynamic_parameters: parameters: database_host: DATABASE_HOST "database.name": DATABASE_NAME
环境变量总是字符串。为了能够设置其他类型的参数,该包支持将环境变量解析为内联 Yaml。
# app/config/config.yml incenteev_dynamic_parameters: parameters: use_ssl: variable: HAS_SSL yaml: true
ParameterHandler 集成
如果您使用的是 Incenteev ParameterHandler 的 env-map 功能,可以非常容易地导入整个 env-map。
# app/config/config.yml incenteev_dynamic_parameters: import_parameter_handler_map: true parameters: something_else: NOT_IN_THE_COMPOSER_JSON
ParameterHandler 将环境变量解析为内联 Yaml,因此当导入映射时,这些变量的 Yaml 解析将自动启用。
注意:任何显式定义的参数将覆盖导入的映射。
默认情况下,该包将在 %kernel.root_dir%/../composer.json
中查找 composer.json 文件。如果您使用非标准的内核位置,您可以将 composer.json 文件的路径更改为读取 env-map。
# app/config/config.yml incenteev_dynamic_parameters: import_parameter_handler_map: true composer_file: path/to/composer.json
运行时检索参数
该包处理服务参数,但无法更改 $container->getParameter()
的行为。然而,它公开了一个服务以获取考虑环境变量的参数。
$this->get('incenteev_dynamic_parameters.retriever')->get('use_ssl');
限制
- 在运行时直接从容器中获取参数将不会使用环境变量。
- 通过连接其他参数构建的参数或参数将不会依赖于环境变量(尚未)。