support 字段是 Packagist「Support」区块唯一数据来源,必须为含 email、forum 等小写键名的 JSON 对象,字符串值无效;配置后需发新版才能在 Packagist 生效。

Composer 项目中的 support 字段不是可选装饰,而是 Packagist 页面上「Support」区块的唯一数据来源——没配它,用户点开你的包就看不到邮件或论坛链接。
support 字段必须是对象,不能是字符串
常见错误是把 support 写成字符串(如 "support": "https://forum.example.com"),这会导致 composer validate 报错:Invalid value for support: expected object, got string。Packagist 也会忽略整个字段。
-
support必须是 JSON 对象,键名固定为email、issues、source、forum、wiki、irc、chat、documentation中的一个或多个 - 值必须是字符串(URL 或邮箱地址),不能是数组或空值
- 键名大小写敏感,
Forum或FORUM都无效,只有小写的forum
配置邮件与论坛链接的正确写法
只需在 composer.json 的根级添加 support 对象,用标准键名:
{
"name": "vendor/package",
"description": "A sample package",
"support": {
"email": "support@yourproject.org",
"forum": "https://forum.yourproject.org"
}
}
注意:email 值不参与自动发信,仅作展示;forum 链接会显示在 Packagist 页面的「Forum」按钮下,点击跳转——它不校验 URL 是否可达,但若拼写错误(如漏掉 https://),浏览器可能解析失败。
其他常用 support 键值与兼容性说明
Packagist 支持全部 官方文档列出的 support 键,但只渲染其中一部分。实际生效且有 UI 映射的包括:
-
email→ 显示为「Email」按钮 -
forum→ 显示为「Forum」按钮 -
issues→ 显示为「Issues」按钮(通常指向 GitHub/GitLab issue 页面) -
source→ 显示为「Source」按钮(必须是可克隆的仓库地址,如https://github.com/vendor/package)
像 wiki 或 irc 这类字段,Packagist 当前不展示,但保留在 composer.json 中无害,部分 IDE 或工具链可能读取它们。
验证配置是否生效
改完 composer.json 后别直接 push:
- 运行
composer validate确保语法合法 - 执行
composer show vendor/package --no-ansi | grep -A5 support查看本地解析结果(需已安装该包) - 真正生效要等 Packagist 抓取新版本:打 tag + push + 等待 webhook 触发,或手动在 Packagist 页面点击「Update」
最容易被忽略的是最后一步——改了 composer.json 但没发新版,Packagist 页面永远不变。










