Letudiant/composer-shared-package-plugin

View on GitHub
docs/all-available-configurations.md

Summary

Maintainability
Test Coverage
# Composer - Shared Package Plugin

## All available configurations

All these configuration should set in the `extra` `shared-package`configuration key in your project `composer.json`.

* `vendor-dir` *(required)* : your shared packages sources directory. This folder is used by the project Composer autoloader. Relative or absolute path are allowed.  
**Note:** you can use the environment variable `COMPOSER_SPP_VENDOR_DIR` to override the default value.
* `package-list` : the shared packages list. You can pass the entire package name, or add the wildcard `*` in the name (e.g. `bar/*`). If you want to share all your project packages, set a package name to `*`.
* `symlink-dir` : your symlinks container directory on your project *(default: vendor-shared)*. Relative or absolute path are allowed.
* `symlink-base-path` : the source base path for all of your symlinks. By default, it's the `vendor-dir` path, but you can override this configuration. It's useful if you use a Virtual Machine and if your dependency directory path is not the same on both machines. Relative or absolute path are allowed. If you choose to set a relative path, it should start from your project root directory (where your project `composer.json` file is located).  
**Note:** you can use the environment variable `COMPOSER_SPP_SYMLINK_BASE_PATH` to override the default value.
* `symlink-enabled` : *(boolean, default: true)* enable or not the symlink directory creation process. Useful if you work directly with the sources directory and you don't want to have the symlink directory in your project.

### Example

``` json
// composer.json (project)
{
    "extra": {
        "shared-package": {
            "vendor-dir": "/var/projects/composer-dependencies",
            "symlink-dir": "symlinks-folder",
            "symlink-base-path": "/home/www/projects/composer-dependencies",
            "symlink-enabled": true,
            "package-list": [
                "foo/bar",
                "bar/*",
                "*"
            ]
        }
    }
}
```