rozehnal/environment-parameters

Composer script building your detached parameters for deploying the app. Built above the great incenteev/composer-parameter-handler library.

v0.81 2017-03-17 20:58 UTC

This package is not auto-updated.

Last update: 2024-04-14 00:17:53 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.

Build Status Scrutinizer Code Quality Code Coverage SensioLabsInsight Latest Unstable Version Latest Stable Version

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

 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

Todo