support 字段仅支持预定义键名,实际生效且被 Packagist 渲染的只有 docs 和 issues,二者必须为完整 HTTPS URL;其他键如 source、forum 等不被解析或展示,自定义键名将导致 composer validate 报错。

support 字段本身不支持直接添加文档链接或 Issue 链接——它只接受特定键名,且这些键名是预定义的、硬编码在 Composer 的 schema 中的。
support 字段只认这几个键:docs、issues、source、forum、wiki、irc、twitter
Composer 官方 Schema 明确限定 support 下只允许以下字段(大小写敏感,不能拼错):
-
docs:对应项目文档地址,例如"docs": "https://example.com/docs" -
issues:对应 Issue 跟踪地址(GitHub/GitLab 的 Issues 页面),例如"issues": "https://github.com/user/repo/issues" -
source:代码仓库地址(不是主页),例如"source": "https://github.com/user/repo.git" - 其他如
forum、wiki等字段虽存在,但不会被 Packagist 或大多数工具解析展示,仅作保留字段
写成 documentation、bugtracker、help 等自定义键名会被 Composer 忽略,且 composer validate 会报 schema 错误。
实际生效的只有 docs 和 issues,且仅在 Packagist 页面显示
Packagist 是目前唯一消费 support 字段并公开渲染的平台。它的前端只读取并展示:
-
docs→ 显示为 “Documentation” 标签页链接 -
issues→ 显示为 “Issues” 标签页链接 -
source→ 用于生成 “Source” 链接,但仅当未设homepage时才可能 fallback 使用
示例正确写法:
{
"support": {
"docs": "https://mylib.example.org/guide",
"issues": "https://github.com/myorg/mylib/issues"
}
}
注意:docs 值必须是完整 URL(含 https://),否则 Packagist 不识别;issues 同理,不能写成 "https://github.com/myorg/mylib"(这是主页,不是 issues 页)。
常见错误:混用 homepage 和 support.docs,或漏掉协议
这两个字段用途不同,不可互相替代:
-
homepage是包的主站(通常带介绍、下载、演示等),Packagist 将其显示在包名下方大标题旁 -
support.docs是纯文档入口,Packagist 单独列为一个导航标签页 - 若只填了
homepage,Packagist 不会自动从它推导出文档链接 - 若
docs值是"./docs"或"docs/index.html",验证失败且 Packagist 忽略
验证方式很简单:
composer validate
如果字段名拼错或 URL 缺少协议,会提示类似:
[Schema] support: The property docs is not defined and the definition does not allow additional properties.(字段名错误)
[Schema] support.docs: URL must start with http:// or https://(协议缺失)
真正起作用的只有 docs 和 issues 这两个键,而且它们只在 Packagist 上可见。本地 composer install 或 IDE 插件完全不读取这个字段——别指望它影响开发流程或自动跳转。










