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"
]
}
}