oomphinc / composer-installers-extender
扩展composer/installers插件,使其能够接受任何任意包类型。
Requires
- php: >=7.1
- composer-plugin-api: ^1.1 || ^2.0
- composer/installers: ^1.0 || ^2.0
Requires (Dev)
- composer/composer: ^2.0
- phpunit/phpunit: ^7.2
- squizlabs/php_codesniffer: ^3.3
README
composer-installers-extender 是一个 Composer 插件,允许任何包被安装到项目中的除默认 vendor 目录以外的其他目录。此插件扩展了 composer/installers 插件,允许任何任意的包类型由其自定义安装器处理。
composer/installers 插件支持有限数量的包类型,我们认识到需要将任何任意的包类型安装到除 vendor 目录以外的特定目录。此插件允许通过 composer/installers 插件处理额外的包类型,从而受益于其显式的安装路径映射和包属性的标记替换。
如何安装
将 oomphinc/composer-installers-extender 添加为项目的依赖项
$ composer require oomphinc/composer-installers-extender
此插件需要至少 PHP 7.1。如果您正在使用较低的 PHP 版本,请使用最新稳定的 1.x 版本
$ composer require oomphinc/composer-installers-extender:^1.1
如何使用
composer/installers 插件是此插件的依赖项,如果尚未要求,它将自动被要求。
为了支持额外的包类型,在您的 composer.json 中的 extra 属性中添加这些类型的数组
对于 composer/installers < v1.0.13
{
    "extra": {
        "installer-types": ["library"]
    }
}
对于 composer/installers >= v1.0.13
{
    "extra": {
        "installer-types": ["drupal-library"]
    }
}
然后在添加到 installer-paths 时引用该类型
对于 composer/installers < v1.0.13
{
    "extra": {
        "installer-types": ["library"],
        "installer-paths": {
            "special/package/": ["my/package"],
            "path/to/libraries/{$name}/": ["type:library"]
        }
    }
}
对于 composer/installers >= v1.0.13
{
    "extra": {
        "installer-types": ["drupal-library"],
        "installer-paths": {
            "special/package/": ["my/package"],
            "path/to/libraries/{$name}/": ["type:drupal-library"]
        }
    }
}
默认情况下,未指定 type 的包将被视为 library 类型。添加对此类型的支持允许将这些包放置在不同的安装路径中。
如果已将类型添加到 installer-types,则插件将尝试在映射中找到明确的安装器路径。如果没有匹配项,无论是通过名称还是通过类型,将使用所有包的默认安装器路径。
请参阅 composer/installers 的 README,了解包和类型匹配的支持语法以及路径中支持替换的标记(例如 {$name})。