PHPackages                             stefk/incenteev-parameters - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. stefk/incenteev-parameters

ActiveLibrary

stefk/incenteev-parameters
==========================

Tmp fork of incenteev/composer-parameter-handler, allowing filter on interactive parameters

v2.1.2(10y ago)0111MITPHPPHP &gt;=5.3.3

Since Apr 6Pushed 10y ago1 watchersCompare

[ Source](https://github.com/stefk/ParameterHandler)[ Packagist](https://packagist.org/packages/stefk/incenteev-parameters)[ Docs](https://github.com/Incenteev/ParameterHandler)[ RSS](/packages/stefk-incenteev-parameters/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (4)Versions (7)Used By (0)

Managing your ignored parameters with Composer
==============================================

[](#managing-your-ignored-parameters-with-composer)

This tool allows you to manage your ignored parameters when running a composer install or update. It works when storing the parameters in a Yaml file under a single top-level key (named `parameters` by default). Other keys are copied without change.

[![Build Status](https://camo.githubusercontent.com/3073806d880f92c71e465b7b695b95845352696c0f1f831348a68b022068b40a/68747470733a2f2f7472617669732d63692e6f72672f496e63656e746565762f506172616d6574657248616e646c65722e706e67)](https://travis-ci.org/Incenteev/ParameterHandler)[![Code Coverage](https://camo.githubusercontent.com/f0681d590e3ae728cf1d1147adfdd4afae8b20ef5dd1774da682a77dbd8d2489/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f496e63656e746565762f506172616d6574657248616e646c65722f6261646765732f636f7665726167652e706e673f733d65613564653238643937363466646362366135373661343165323434633061633533376233633831)](https://scrutinizer-ci.com/g/Incenteev/ParameterHandler/)[![Scrutinizer Quality Score](https://camo.githubusercontent.com/0dbe18c9b68b40c74e5218458a47de674f79af0f70f84c45d2a28ce202934943/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f496e63656e746565762f506172616d6574657248616e646c65722f6261646765732f7175616c6974792d73636f72652e706e673f733d36313433643934356262646661633563313131346434666535643066346565373337646231386266)](https://scrutinizer-ci.com/g/Incenteev/ParameterHandler/)[![SensioLabsInsight](https://camo.githubusercontent.com/84f2b447bdc7604dbe5f0071e27d3ee2ded1381f89ac85b5ddb72fc9397db67b/68747470733a2f2f696e73696768742e73656e73696f6c6162732e636f6d2f70726f6a656374732f33613433326534392d363031382d343161352d613337622d6237666231353137303663312f6d696e692e706e67)](https://insight.sensiolabs.com/projects/3a432e49-6018-41a5-a37b-b7fb151706c1)[![Latest Stable Version](https://camo.githubusercontent.com/b837433fbea3dcbee4c2d7005bd0cdb483090949c3a773f05a67056c4a02a330/68747470733a2f2f706f7365722e707567782e6f72672f696e63656e746565762f636f6d706f7365722d706172616d657465722d68616e646c65722f762f737461626c652e706e67)](https://packagist.org/packages/incenteev/composer-parameter-handler)[![Latest Unstable Version](https://camo.githubusercontent.com/e322f985183a8a18e3ca31719ee0f525b42de00b5c41991f174388c589e19195/68747470733a2f2f706f7365722e707567782e6f72672f696e63656e746565762f636f6d706f7365722d706172616d657465722d68616e646c65722f762f756e737461626c652e706e67)](https://packagist.org/packages/incenteev/composer-parameter-handler)

Usage
-----

[](#usage)

Add the following in your root composer.json file:

```
{
    "require": {
        "incenteev/composer-parameter-handler": "~2.0"
    },
    "scripts": {
        "post-install-cmd": [
            "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters"
        ],
        "post-update-cmd": [
            "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters"
        ]
    },
    "extra": {
        "incenteev-parameters": {
            "file": "app/config/parameters.yml"
        }
    }
}
```

The `app/config/parameters.yml` will then be created or updated by the composer script, to match the structure of the dist file `app/config/parameters.yml.dist`by asking you the missing parameters.

By default, the dist file is assumed to be in the same place than the parameters file, suffixed by `.dist`. This can be changed in the configuration:

```
{
    "extra": {
        "incenteev-parameters": {
            "file": "app/config/parameters.yml",
            "dist-file": "some/other/folder/to/other/parameters/file/parameters.yml.dist"
        }
    }
}
```

The script handler will ask you interactively for parameters which are missing in the parameters file, using the value of the dist file as default value. All prompted values are parsed as inline Yaml, to allow you to define `true`, `false`, `null` or numbers easily. If composer is run in a non-interactive mode, the values of the dist file will be used for missing parameters.

**Warning:** This parameters handler will overwrite any comments or spaces into your parameters.yml file so handle with care. If you want to give format and comments to your parameter's file you should do it on your dist version.

### Keeping outdated parameters

[](#keeping-outdated-parameters)

Warning: This script removes outdated params from `parameters.yml` which are not in `parameters.yml.dist`If you need to keep outdated params you can use `keep-outdated` param in the configuration:

```
{
    "extra": {
        "incenteev-parameters": {
            "keep-outdated": true
        }
    }
}
```

### Using a different top-level key

[](#using-a-different-top-level-key)

The script handler looks for a `parameters` key in your dist file. You can change this by using the `parameter-key` param in the configuration:

```
{
    "extra": {
        "incenteev-parameters": {
            "parameter-key": "config"
        }
    }
}
```

### Using environment variables to set the parameters

[](#using-environment-variables-to-set-the-parameters)

For your prod environment, using an interactive prompt may not be possible when deploying. In this case, you can rely on environment variables to provide the parameters. This is achieved by providing a map between environment variables and the parameters they should fill:

```
{
    "extra": {
        "incenteev-parameters": {
            "env-map": {
                "my_first_param": "MY_FIRST_PARAM",
                "my_second_param": "MY_SECOND_PARAM"
            }
        }
    }
}
```

If an environment variable is set, its value will always replace the value set in the existing parameters file.

As environment variables can only be strings, they are also parsed as inline Yaml values to allows specifying `null`, `false`, `true` or numbers easily.

### Filtering interactive parameters

[](#filtering-interactive-parameters)

By default, the interactive prompt asks for every parameter missing in the parameters file. If you want to restrict that behaviour to a particular set of parameters, and let the handler use the default values otherwise, you can do so by specifying a whitelist in the `interactive-keys` property:

```
{
    "extra": {
        "incenteev-parameters": {
            "interactive-keys": [
                "param_1",
                "param_3",
                "param_8"
            ]
        }
    }
}
```

### Renaming parameters

[](#renaming-parameters)

If you are renaming a parameter, the new key will be set according to the usual routine (prompt if possible, use environment variables, use default). To have the parameters handler use the value of an (obsolete) parameter, specify a rename-map:

```
{
    "extra": {
        "incenteev-parameters": {
            "rename-map": {
                "new_param_1": "old_param_1",
                "new_param_2": "old_param_2"
            }
        }
    }
}
```

This will create the new parameters new\_param\_1 and new\_param\_2 while using the values from old\_param\_1 and old\_param\_2, respectively. It will not remove the old parameters unless you've also removed them from the dist version.

If the old parameter is no longer present (maybe because it has been renamed and removed already), no parameters are overwritten. You don't need to remove obsolete parameters from the rename map once they have been renamed.

### Managing multiple ignored files

[](#managing-multiple-ignored-files)

The parameter handler can manage multiple ignored files. To use this feature, the `incenteev-parameters` extra should contain a JSON array with multiple configurations inside it instead of a configuration object:

```
{
    "extra": {
        "incenteev-parameters": [
            {
                "file": "app/config/parameters.yml",
                "env-map": {}
            },
            {
                "file": "app/config/databases.yml",
                "dist-file": "app/config/databases.dist.yml",
                "parameter-key": "config"
            }
        ]
    }
}
```

###  Health Score

29

—

LowBetter than 60% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity10

Limited adoption so far

Community18

Small or concentrated contributor base

Maturity62

Established project with proven stability

 Bus Factor1

Top contributor holds 63.2% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~237 days

Total

5

Last Release

3832d ago

Major Versions

v1.0.0 → v2.0.02013-04-06

### Community

Maintainers

![](https://www.gravatar.com/avatar/8e3b554887f1d89617b1736b1c87c67168074bc6e89f1ec0612e306cf648543e?d=identicon)[stefk](/maintainers/stefk)

---

Top Contributors

[![stof](https://avatars.githubusercontent.com/u/439401?v=4)](https://github.com/stof "stof (60 commits)")[![cordoval](https://avatars.githubusercontent.com/u/328359?v=4)](https://github.com/cordoval "cordoval (7 commits)")[![richsage](https://avatars.githubusercontent.com/u/231551?v=4)](https://github.com/richsage "richsage (3 commits)")[![stefk](https://avatars.githubusercontent.com/u/880921?v=4)](https://github.com/stefk "stefk (3 commits)")[![lsmith77](https://avatars.githubusercontent.com/u/300279?v=4)](https://github.com/lsmith77 "lsmith77 (2 commits)")[![franmomu](https://avatars.githubusercontent.com/u/720690?v=4)](https://github.com/franmomu "franmomu (2 commits)")[![igorzoriy](https://avatars.githubusercontent.com/u/535694?v=4)](https://github.com/igorzoriy "igorzoriy (2 commits)")[![ivan1986](https://avatars.githubusercontent.com/u/156418?v=4)](https://github.com/ivan1986 "ivan1986 (2 commits)")[![alcaeus](https://avatars.githubusercontent.com/u/383198?v=4)](https://github.com/alcaeus "alcaeus (2 commits)")[![rybakit](https://avatars.githubusercontent.com/u/533861?v=4)](https://github.com/rybakit "rybakit (2 commits)")[![fabpot](https://avatars.githubusercontent.com/u/47313?v=4)](https://github.com/fabpot "fabpot (1 commits)")[![lucascourot](https://avatars.githubusercontent.com/u/938375?v=4)](https://github.com/lucascourot "lucascourot (1 commits)")[![pborreli](https://avatars.githubusercontent.com/u/77759?v=4)](https://github.com/pborreli "pborreli (1 commits)")[![rgazelot](https://avatars.githubusercontent.com/u/1488251?v=4)](https://github.com/rgazelot "rgazelot (1 commits)")[![h4cc](https://avatars.githubusercontent.com/u/2981491?v=4)](https://github.com/h4cc "h4cc (1 commits)")[![elnur](https://avatars.githubusercontent.com/u/821060?v=4)](https://github.com/elnur "elnur (1 commits)")[![sgilberg](https://avatars.githubusercontent.com/u/669465?v=4)](https://github.com/sgilberg "sgilberg (1 commits)")[![soullivaneuh](https://avatars.githubusercontent.com/u/1698357?v=4)](https://github.com/soullivaneuh "soullivaneuh (1 commits)")[![j-d](https://avatars.githubusercontent.com/u/1140726?v=4)](https://github.com/j-d "j-d (1 commits)")[![jordillonch](https://avatars.githubusercontent.com/u/601782?v=4)](https://github.com/jordillonch "jordillonch (1 commits)")

---

Tags

parameters management

### Embed Badge

![Health badge](/badges/stefk-incenteev-parameters/health.svg)

```
[![Health](https://phpackages.com/badges/stefk-incenteev-parameters/health.svg)](https://phpackages.com/packages/stefk-incenteev-parameters)
```

###  Alternatives

[incenteev/composer-parameter-handler

Composer script handling your ignored parameter file

93174.1M402](/packages/incenteev-composer-parameter-handler)[diarmuidie/envpopulate

Tool to interactively populate a `.env` file based on an `.env.example` file whenever Composer installs or updates.

1892.0k](/packages/diarmuidie-envpopulate)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
