rozehnal / environment-parameters
Composer script building your detached parameters for deploying the app. Built above the great incenteev/composer-parameter-handler library.
Installs: 3 623
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
Requires
- php: >=5.3.3
- incenteev/composer-parameter-handler: ~2.0
- symfony/filesystem: ~2.6|~3.2
- symfony/yaml: ~2.3|~3.0
Requires (Dev)
- composer/composer: 1.0.*@dev
- mikey179/vfsstream: ~1.6
- phpunit/phpunit: ^4.8
This package is not auto-updated.
Last update: 2025-04-13 05:29:04 UTC
README
This tool allows you to manage app parameters for deployment in separate repositories. The repo is fully compatible with all parameters from https://github.com/Incenteev/ParameterHandler.
Run
composer run-script build --no-interaction -- --env=prod
Usage
Add the following in your root composer.json file:
{ "require": { "rozehnal/environment-parameters": "0.x-dev" }, "scripts": { "build": [ "Paro\\EnvironmentParameters\\ParametersHandler::buildParameters" ] }, "extra": { "environment-parameters": { "build-folder": "build", "files": [ { "file": "{env}/key.{env}.p12", "name": "key.p12" } ], "incenteev-parameters": { "file": "parameters.yml", "env-map": { "path": "PATH" } } } } }
The build/parameters.yml
will then be created
composer script, to match the structure of the dist file parameters.yml
by asking you the missing parameters.
Supported syntax
- Fully compatible with https://github.com/Incenteev/ParameterHandler
"%env(ENV_VARIABLE)%"
syntax in*.yml
filesimports
in*.yml
files
imports:
- { resource: 'include.yml' }
Hierarchical structure
{ "extra": { "environment-parameters": { "files": [ { "file": "{env}/key.p12", "name": "key.p12" } ], "incenteev-parameters": { "file": "{env}/parameters.yml" } } } }
composer run-script build --no-interaction -- --env=test/test01
Files are searched in order test/test01/key.p12
, test/key.p12
and test/test01/parameters.yml
, test/parameters.yml
. It means you are able to build configuration
on inheritence from parent folders with overriding details in children folders. Applicable for both -
files and *.yml
files.
Output formats [yaml, php-constants]
Default output format is well-knownyaml
file. Currently there is possible to create php
file where each parameter defines constant - define(key, value)
.
{ "extra": { "environment-parameters": { "incenteev-parameters": { "file": "{env}/parameters.yml", "name": "parameters.php", "output-format": "php-constants" } } } }
Example
https://github.com/rozehnal/environment-parameters-test