transport-options 是第三方插件使用的自定义配置,用于控制文件传输行为,如 SFTP 部署选项,需插件支持并正确安装启用才能生效。
Composer 的
transport-options
并不是 Composer 核心本身的配置项,而是某些第三方插件(如
或自定义安装器)或自定义传输机制中可能用到的选项。在官方 Composer 文档中,并没有直接称为
的全局配置。
但如果你在项目中看到
,它通常出现在以下场景中:
1. 自定义 Installer 插件中的 transport-options
一些扩展包为了控制文件如何被复制、移动或部署,可能会引入
来传递额外参数。例如,在使用
进行远程部署时,可能通过该字段配置 SSH 选项。
示例(
):
这种配置需要对应插件支持解析
字段。你必须确保已安装并启用了能处理这些选项的 Composer 插件。
2. 私有仓库或镜像的传输配置
虽然不叫
,但 Composer 支持为私有仓库设置认证和传输层行为,比如使用 HTTPS 或 SSH 时的 CA 验证、代理等。
常见方式是通过
字段设置:
PHP 8.5.5
PHP 8.5.5 是 PHP 8.5 分支的维护更新版本。该版本延续了“小步快跑”的迭代逻辑,通过深度错误修复、底层性能微调以及安全加固,旨在为开发者提供一个更健壮、更高效的运行环境。该版本严格遵守语义化版本规范,不包含破坏性变更。
下载
这类配置影响的是资源下载的“传输”过程,可以理解为广义上的传输选项。
3. 使用 Plugin 处理自定义传输逻辑
如果你想真正实现基于
的功能,需要编写一个 Composer 插件,监听事件(如
),读取
并执行相应操作(如上传文件、同步到服务器等)。
步骤简述:
创建一个 Composer 插件类,实现
注册事件监听器(如
)
从
获取配置
根据配置执行 SFTP、Rsync 或 API 调用等操作
总结
transport-options
不是 Composer 内置配置,而是由特定插件约定使用的自定义字段。它的作用和用法取决于具体插件的实现。要使用它,你需要:
确认所用插件文档是否支持该字段
按照插件要求格式填写
确保插件已正确安装并启用
如果没有使用相关插件,添加
不会产生任何效果。
基本上就这些。关键是看谁在读这个配置。
composer/installerstransport-optionstransport-optionstransport-optionsphpseclibcomposer.json{
"extra": {
"installer-paths": {
"deploy/{$name}/": ["your-vendor/your-package"]
},
"transport-options": {
"your-vendor/your-package": {
"method": "sftp",
"host": "example.com",
"username": "deploy",
"password": "secret",
"port": 22
}
}
}
}
transport-optionstransport-optionsconfig{
"config": {
"secure-http": false,
"github-protocols": ["https"],
"gitlab-token": "your-token",
"http-basic": {
"your-repo.example.com": {
"username": "user",
"password": "pass"
}
}
}
}
transport-optionspost-install-cmdextra.transport-optionsPluginInterfaceScriptEvents::POST_INSTALL_CMD$composer->getPackage()->getExtra()['transport-options']extra.transport-optionstransport-options