最直接、唯一可靠查作者的方式是 composer show,composer info 已被弃用且不保证输出 authors 字段;authors 是手工填入 composer.json 的静态字段,非 Git 提交自动聚合。

用 composer show 查作者,不是 composer info
查作者信息最直接、唯一可靠的方式就是 composer show,composer info 已被弃用多年,且不保证输出 authors 字段。很多开发者误以为 composer info vendor/package 能看到作者,结果返回空数组或干脆报错——那是因为它压根不读取 composer.json 根级的 authors 数组。
-
composer show monolog/monolog会清晰列出authors行,例如:John Doe, Jordi Boggiano - 如果包没安装,加
--remote:composer show --remote laravel/framework,它会实时请求 Packagist API,读取最新稳定版 composer.json 中的authors -
authors是纯手工填进 composer.json 的字段,不是 Git 提交记录自动聚合的;有人提交过 200 次 PR 却没被写进 authors,也完全正常
为什么 composer show -s 有时看不到 source.url
-s(即 --source)确实能显示仓库地址,但前提是这个包**已经安装在当前项目里**。如果只是临时想查某个未引入的包的 GitHub 链接,composer show -s 会直接报错 Package not installed,而不是优雅降级。
- 已安装包:运行
composer show -s vendor/package,输出中找"source": { "url": "https://..." } - 未安装包:得手动拼 Packagist API 地址,比如
https://packagist.org/packages/monolog/monolog.json,然后翻到source.url字段 - 注意:有些包
type是metapackage或project,它们的source字段可能为空,因为不提供实际代码,自然也不需要仓库链接
别信 composer search,它根本不管作者字段
composer search 只索引包名和 description,完全不碰 authors。你搜 john doe,哪怕他写了 10 个包,只要描述里没写“John Doe”,就一个都搜不到。
- 搜索场景本质是「模糊匹配包用途」,不是「找人」;真想找某位开发者维护的包,去 GitHub 搜
user:username composer.json author更靠谱 - 有些包作者字段写的是公司名(如
"Acme Corp"),有些写个人邮箱,格式五花八门,composer search连标准化都做不到 - 如果你看到某教程说
composer search --author,那是假命令——Composer 命令行从没实现过这个 flag
作者信息 ≠ 贡献者,别拿它当联系方式用
composer.json 里的 authors 是发布时声明的“责任主体”,不是 Slack 群二维码。想联系开发者?优先看包的 homepage 或 support 字段,或者直接点 source.url 进 GitHub 仓库,翻 CONTRIBUTING.md 或 Issues 区。
-
homepage字段常指向文档站或官网,比作者邮箱更稳定;support.source或support.issues才是真正该去提问的地方 - 很多作者字段留的是旧邮箱(比如
@gmail.com已停用),或根本没填 email,只写了名字 —— 这时候硬发邮件,基本石沉大海 - 如果包主页是 GitHub,顺手点开
commits或graphs/contributors,反而比authors更真实反映谁还在维护
作者字段是静态快照,不是活通讯录;它告诉你「谁愿意为这个版本背书」,而不是「现在谁在线可聊」。真要对接,别只盯着 authors 一行字,多看一眼 support 和 source.url —— 那才是活路。










