imscp / composer-installers
i-MSCP composer 安装器
Requires
- php: ^7.1
- composer-plugin-api: ^1.1
Requires (Dev)
- composer/composer: ^1.8
- imscp/imscp-coding-standard: ^1.0
- phpunit/phpunit: ^7.5.6
- roave/security-advisories: dev-master
Conflicts
Replaces
This package is auto-updated.
Last update: 2024-09-23 00:30:42 UTC
README
这是为 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-api
和 imscp/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" ] } }