Download the PHP package villfa/composer-substitution-plugin without Composer
On this page you can find all versions of the php package villfa/composer-substitution-plugin. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download villfa/composer-substitution-plugin
More information about villfa/composer-substitution-plugin
Files in villfa/composer-substitution-plugin
Package composer-substitution-plugin
Short Description Composer plugin replacing placeholders in the scripts section by dynamic values
License MIT
Homepage https://github.com/villfa/composer-substitution-plugin
Informations about the package composer-substitution-plugin
Composer Substitution Plugin
The Composer Substitution plugin replaces placeholders in the scripts section by dynamic values.
It also permits to cache these values during the command execution and adds the ability to escape them with the function of your choice.
Installation
Requirements
- PHP >= 5.3.2
- Composer >= 1.0.0
Usage
You need to configure the plugin in the extra section of composer.json
.
Here an example:
Then you can add the configured placeholders in the scripts section:
And now if you run the command:
Configuration
Configuration key | Mandatory | Type | Default value | Description |
---|---|---|---|---|
extra.substitution.enable | no | bool | true with Composer 2.2+, false otherwise | Disables the plugin when false |
extra.substitution.mapping | yes | object | empty object | Mapping between placeholders (the keys) and substitution rules (the values). There is no restriction with the placeholders format. |
extra.substitution.mapping.*.type | yes | string | n/a | Substitution type (see the related section below) |
extra.substitution.mapping.*.value | yes | string | n/a | Substitution value (depends on the type) |
extra.substitution.mapping.*.cached | no | bool | false | Indicates whether the value provided after the first substitution must be cached |
extra.substitution.mapping.*.escape | no | string | null | Escaping function that will receive the substitute value as argument |
extra.substitution.priority | no | integer | 0 | Plugin's event handler priority (see Composer documentation) |
:warning: From Composer 2.2+ you'll have to configure your composer.json file to allow the plugin to run |
---|
Example:
You can just execute this command:
For more details, see https://getcomposer.org/doc/06-config.md#allow-plugins
Substitution types
For each type of substitution the value replacing the placeholder comes from a different source.
literal
: The value in configuration is used directly.callback
: The value is the string returned by a callback.include
: The value is the string returned by a PHP file.env
: The value is an ENV variable.constant
: The value comes from a constant or a class constant.process
: The value is the output of the processed command.
Real-life examples
PHPUnit Extra Constraints
This library defines a Composer script which uses PHP_CodeSniffer this way:
Unfortunately it is not cross-platform because of the usage of nproc
.
This is solved by the substitution plugin in combination with Linfo (See also the tiny script nproc.php). Here how it is configured:
So now it also works on Windows without even touching the scripts section.
All versions of composer-substitution-plugin with dependencies
ext-ctype Version *
ext-json Version *
composer-plugin-api Version ^1.0 || ^2.0
psr/log Version ^1.1