composer show 不支持按 author 过滤,仅支持 --installed、--outdated、--platform 等参数;查某作者所有包需调用 Packagist API,如 curl -s "https://packagist.org/packages/list.json?vendor=xxx" | jq -r '.packageNames[]'。

composer show 支持哪些过滤参数?
Composer 的 composer show 命令本身不支持直接按作者(author)过滤,它只接受包名(或命名空间)作为位置参数,例如 composer show monolog/monolog 或 composer show monolog/*。所谓“过滤参数”其实是 shell 层面的文本处理配合,不是 Composer 内置功能。
真正能用的只有 --installed(只显示已安装的)、--outdated(只显示过期包)、--platform(只显示 PHP 扩展等平台包),这些都不涉及 author 字段。
如何查某个作者的所有包(含未安装的)?
得绕过 composer show,改用 Packagist API + 命令行工具组合查询。Packagist 公开 API 提供了按 vendor 名搜索的能力,而作者名通常对应 vendor 名(如 symfony、phpunit)。
实操建议:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 用
curl "https://packagist.org/packages/list.json?vendor=作者名"获取该 vendor 下所有包名列表(注意:API 有速率限制,未认证请求约 60 次/小时) - 返回的是 JSON,需用
jq提取:例如curl -s "https://packagist.org/packages/list.json?vendor=symfony" | jq -r '.packageNames[]' - 如果没装
jq,可用grep+sed粗略提取,但容易出错——比如包名含斜杠或引号时会漏匹配 - 部分作者用非 vendor 名注册(如个人 GitHub ID
ocramius),这时要试多个可能的 vendor 值,不能只猜邮箱或全名
怎么确认某包的作者信息是否可靠?
Packagist 上显示的 author 来自包的 composer.json 中的 authors 字段,这个字段完全由维护者填写,不校验真实性。常见陷阱:
- 一个包的
authors数组可能包含多人,但vendor名只取第一个(如doctrine/orm的 vendor 是doctrine,但作者列表里有十几个名字) - 有些包把公司名当 author(如
"author": "Google LLC"),但 vendor 是个人账号(如google/apiclient) -
composer show 包名输出里authors部分是纯文本,无法用 grep 稳定提取——因为格式不固定,有的换行,有的缩进,有的带空格
想快速检查本地项目里用了哪些某作者的包?
这时候才真正用得上 composer show,但得配合 shell 过滤:
- 先运行
composer show --name-only列出所有已安装包名 - 再用
grep匹配 vendor 前缀:composer show --name-only | grep "^symfony/" - 别用
composer show | grep author——输出混杂,且 author 行不一定紧跟包名,容易漏或误匹配 - 如果 vendor 名含点(如
my-company),记得在grep里转义或加-F:用grep -F "my-company/"更安全
实际中,vendor 名和作者名经常不一致,比如 laravel/framework 的作者是 Taylor Otwell,但 vendor 是 laravel;查 “Taylor Otwell 开发的包”,只能靠手动翻 Packagist 页面或写脚本遍历他所有仓库的 composer.json。

















