authors 字段必须是 JSON 数组,即使单作者也需用[{}]包裹;name和email为必需字段且需符合格式,homepage和role可选;多作者按贡献顺序排列,支持UTF-8但email须含@和有效域名。

authors 字段必须是数组,每个作者用对象表示
Composer 不接受字符串或单个对象,authors 的值必须是 JSON 数组。哪怕只写一个作者,也得套一层 [],否则 composer validate 会报错:Invalid value for authors: expected array, got object。
常见错误写法:
{
"authors": {
"name": "Zhang San",
"email": "zhang@example.com"
}
}
正确写法(注意方括号):
{
"authors": [
{
"name": "Zhang San",
"email": "zhang@example.com"
}
]
}
name 和 email 是最简必需字段,homepage 和 role 是可选补充
name 和 email 是唯一被 Composer 官方校验为“推荐提供”的字段;其他如 homepage、role 不参与验证,但会被 Packagist 页面展示。
-
name:建议用真实全名,不强制,但避免用昵称或项目代号 -
email:需符合邮箱格式,即使不公开也建议填(Packagist 会做脱敏处理) -
homepage:可填个人博客、GitHub 主页等,URL 必须带协议(如https://) -
role:自由字符串,例如"Maintainer"、"Contributor"、"Lead Developer",无预定义枚举值
多个作者按贡献顺序排列,不强制要求排序规则
Composer 本身不解析 authors 数组顺序的语义,但 Packagist 页面会按数组顺序从上到下展示。实际项目中建议:
- 把主要维护者(如 owner 或 primary contributor)放在第一位
- 按 Git 提交量或职责权重排序,而非字母序或加入时间
- 避免频繁调整顺序——虽然不影响安装,但会干扰 Packagist 的历史作者列表快照
中文名、特殊字符和空格都合法,但 email 必须可解析
name 字段支持 UTF-8,写 "张三" 或 "Dr. Émilie Lefèvre" 都没问题。真正容易出问题的是 email:
- 不能省略
@和域名部分("zhang"或"zhang@"会触发composer validate警告) - 不要用全角符号(如 @ 或 。),会导致解析失败
- 若使用别名邮箱(如
zhang+packagist@example.com),确保该地址能收信——虽不验证连通性,但影响协作响应
作者字段看着简单,但 email 格式不对、少了一层方括号、或者用了不可见 Unicode 空格,都会让包在 Packagist 上显示异常或 CI 验证失败。










