incenteev/dynamic-parameters-bundle
Composer 安装命令:
composer require incenteev/dynamic-parameters-bundle
包简介
Runtime retrieval of parameters from environment variables for Symfony
README 文档
README
This bundle provides a way to read parameters from environment variables at runtime. The value defined in the container parameter is used as fallback when the environment variable is not available.
Installation
Installation is a quick (I promise!) 2 step process:
- Download IncenteevDynamicParametersBundle
- Enable the bundle
Step 1: Install IncenteevDynamicParametersBundle with composer
Run the following composer require command:
$ composer require incenteev/dynamic-parameters-bundle
Step 2: Enable the bundle
Finally, enable the bundle in the kernel:
// app/AppKernel.php public function registerBundles() { $bundles = array( // ... new Incenteev\DynamicParametersBundle\IncenteevDynamicParametersBundle(), ); }
Usage
Define the map of parameter names with the environment variable used to configure them.
# app/config/config.yml incenteev_dynamic_parameters: parameters: database_host: DATABASE_HOST "database.name": DATABASE_NAME
Environment variables are always strings. To be able to set parameters of other types, the bundle supports parsing the environment variable as inline Yaml:
# app/config/config.yml incenteev_dynamic_parameters: parameters: use_ssl: variable: HAS_SSL yaml: true
ParameterHandler integration
If you are using the env-map feature of the Incenteev ParameterHandler, you can import the whole env-map very easily:
# app/config/config.yml incenteev_dynamic_parameters: import_parameter_handler_map: true parameters: something_else: NOT_IN_THE_COMPOSER_JSON
The ParameterHandler parses the environment variables as inline Yaml, so the Yaml parsing is automatically enabled for these variables when importing the map.
Note: Any parameter defined explicitly will win over the imported map.
By default, the bundle will look for the composer.json file in %kernel.root_dir%/../composer.json. If you use a non-standard location for your kernel, you can change the path to your composer.json file to read the env-map:
# app/config/config.yml incenteev_dynamic_parameters: import_parameter_handler_map: true composer_file: path/to/composer.json
Retrieving parameters at runtime
The bundle takes care of service arguments, but changing the behavior of $container->getParameter() is not possible. However, it exposes a service to get parameters taking the environment variables into account.
$this->get('incenteev_dynamic_parameters.retriever')->get('use_ssl');
Limitations
- Getting a parameter from the container directly at runtime will not use the environment variable
- Parameters or arguments built by concatenating other parameters together will not rely on the environment variables (yet)
统计信息
- 总下载量: 10.54k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 42
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2014-12-22