imscp/composer-installers

i-MSCP composer 安装器

安装: 985

依赖者: 4

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 0

公开问题: 0

类型:composer-plugin

1.0.0 2019-03-14 09:40 UTC

This package is auto-updated.

Last update: 2024-09-23 00:30:42 UTC


README

Build Status Coverage Status

这是为 i-MSCP composer 包作者编写的,他们在 composer.json 中需要要求。它将根据指定的包类型将他们的包安装到正确的位置。

当前支持的安装器和包类型

示例 composer.json

这是 i-MSCP PhpMyAdmin composer 包的示例。在 composer.json 文件中需要设置的重要部分是 "type": "imscp-tool",它描述了包是什么,以及 "require": { "imscp/composer-installers": "^1.0" },它告诉 composer 加载自定义安装器。

{
    "name": "imscp/phpmyadmin",
    "type": "imscp-tool",
    "require": {
        "imscp/composer-installers": "^1.0"
    }
}

这将把包安装到 gui/public/tools/phpmyadmin/ 路径。

自定义安装路径

i-MSCP 开发者或管理员可以通过在 i-MSCP 实例的 composer.json 中使用 installer-paths 额外设置覆盖不同的安装路径。

基于包

{
    "extra": {
        "installer-paths": {
            "custom/path/{$name}/": [
                "konzeptplus/imscp-api",
                "imscp/dns-provisioning"
            ]
        }
    }
}

konzeptplus/imscp-apiimscp/dns-provisioning 包安装到 custom/path/{$name}/ 路径。

基于包类型

{
    "extra": {
        "installer-paths": {
            "custom/path/{$name}/": [
                 "type:imscp-plugin"
             ]
        }
    }
}

将任何类型为 imscp-plugin 的包安装到 custom/path/{$name}/ 路径。

基于供应商

{
    "extra": {
        "installer-paths": {
            "custom/path/{$name}/": [
                "vendor:konzeptplus"
            ]
        }
    }
}

将任何由 konzeptplus 供应商提供的包安装到 custom/path/{$name}/ 路径。

在所有上述情况下,以下变量可用于路径

  • {$name}: 包名
  • {$vendor} 供应商名
  • {$type} 包类型

自定义安装名称

作为包作者,您可以在使用包的 composer.json 中的 installer-name 额外设置时将其命名为不同。

如果您有一个名为 imscp/roundcube 且类型为 imscp-tool 的包,它将被安装到 gui/public/tools/roundcube 路径。为了将其作为默认 Webmail 提供服务,您需要按以下方式重写其名称

{
    "name": "imscp/roundcube",
    "type": "imscp-tool",
    "extra": {
        "installer-name": "webmail"
    }
}

这样做后,包将被安装到 gui/public/tools/webmail 路径。

禁用安装器

可能会有时候您想禁用来自 imscp/composer-installers 的一个或多个安装器。例如,如果您正在管理一个使用特定安装器且与 imscp/composer-installers 冲突的包,同时该包也依赖于依赖于 imscp/composer-installers 的包。

可以通过指定额外的 installer-disable 属性来禁用安装器。如果设置为 true"all""*",则所有安装器都将被禁用。

{
    "extra": {
        "installer-disable": true
    }
}

否则,可以指定单个安装器或安装器的数组。

{
    "extra": {
        "installer-disable": [
            "imscp",
            "roundcube"
        ]
    }
}

注意:如果在数组中使用全局禁用值(true"all""*"),则它将优先于数组中使用的单个安装器名称。以下示例将禁用所有安装器。

{
    "extra": {
        "installer-disable": [
          "imscp",
          "all"
        ]
    }
}