必须使用 authors 数组而非 author 单字段,因 Composer JSON Schema 强制要求 authors 为包含至少 name 字符串的对象数组,否则 validate 报错、Packagist 忽略、工具无法解析。

必须写成 authors 数组,不能是 author 单字段,否则 composer validate 直接报错,Packagist 也完全忽略。
为什么 author 字段无效?
Composer 官方 JSON Schema 明确要求作者信息必须放在 authors(复数)字段,且类型为数组。写成 "author": {...} 或 "author": "Name" 都属于结构错误——不是“不推荐”,而是解析失败。
-
composer validate会提示类似[ERROR] authors is missing or invalid的校验错误 - Packagist 在抓取元数据时跳过该字段,页面上不显示作者
- IDE(如 PHPStorm)、分析工具(PHPStan 插件)无法提取维护者信息
- 即使
composer install成功,也只是因为该字段非必需;但一旦你依赖它做自动化流程(如生成贡献者列表),就会静默失效
authors 数组的合法结构是什么?
每个元素必须是对象,且至少含 name 字符串;email 和 homepage 是可选字段,但建议填全。哪怕只有一人,也必须用数组包装:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
{
"name": "myvendor/my-package",
"authors": [
{
"name": "张三",
"email": "zhangsan@example.com",
"homepage": "https://zhangsan.dev"
}
]
}
-
name必须是真实姓名或团队标识(如"Symfony Community"),不能是昵称、项目名或占位符 -
email要符合 RFC 格式,CI 工具(如 GitHub Actions 中的 composer-validate action)可能因格式错误警告 -
homepage应为完整 URL(含https://),否则某些工具解析失败 - 多个作者就写多个对象,不要合并、不要用逗号分隔字符串
怎么快速初始化或修改 authors?
别手动改完就跑 composer install——验证和同步才是关键环节。
- 新建项目时,用
echo预写 +composer init -n:先写好含authors的最小 JSON,再让-n补全其他字段,避免交互覆盖 - 已有项目,直接编辑
composer.json后必须运行composer validate确认通过 - 改完不打新 tag → Packagist 不更新:Push 代码后,要
git tag v1.2.3 && git push --tags - 全局配置不影响已有项目:用
composer config -g name "xxx"只影响后续composer init生成的文件,不会重写当前项目的authors
查别人包的作者信息,为什么有时看不到?
因为 composer show vendor/package 输出的 author 行,完全取决于对方 composer.json 里有没有填、怎么填。它可能:
- 根本没定义
authors字段 → 输出里压根不出现author行 - 填了但用了非法格式(如字符串)→ Composer 解析时丢弃,show 也不显示
- 填了数组但
name是空字符串或空白 → 某些工具显示为空,实际字段存在 - 用公司邮箱统一署名(如
"email": "noreply@company.com")→ 看起来像没人,其实是多人共用入口
真正起作用的永远只有你自己的 composer.json 里那个严格符合 schema 的 authors 数组——别指望靠“惯例”绕过校验,Composer 对这个字段的解析是硬规则,不是松散约定。

















