composer如何查看包的keywords信息_composer包标签检索技巧【发现】

1次阅读

composer show 命令可直接查看包的 keywords 标签,如 composer show monolog/monolog 输出中 keywords 行即为目标信息;keywords 在 composer.json 中须写为小写英文字符串数组(如 [“Logging”, “psr-3”]),影响 packagist 搜索排序但不保证命中,且 composer search 不检索 keywords 字段。

composer如何查看包的keywords信息_composer包标签检索技巧【发现】

composer show 命令直接查 keywords

想快速知道某个包打了哪些标签(keywords),composer show 是最直接的命令,不用进源码、也不用翻 github 页面。它默认输出包的 name、version、description、keywords、homepage 等字段,其中 keywords 就是你要的信息。

实操建议:

  • 查单个包:composer show monolog/monolog,输出里找 keywords
  • 查已安装包的完整字段(含 keywords):composer show --all,但会列出全部包,信息量大,建议配合 grep 过滤:composer show --all | grep -A 5 "monolog"
  • keywords 是 composer.json 里定义的数组,不是动态生成的,所以不会反映运行时行为或兼容性变化

keywords 字段在 composer.json 中怎么写才有效

keywords 不是装饰字段,它影响 packagist.org 的搜索排序和语义匹配。但很多人写得随意,导致搜不到或被误判。

实操建议:

  • 用小写英文单词,逗号分隔,不加引号(JSON 格式要求字符串必须带引号,所以实际要写成 "keywords": ["logging", "psr-3"]
  • 避免宽泛词如 phplibrary,packagist 会忽略这类停用词
  • 优先填具体能力或标准:比如 psr-7http-clientlaravel-package,比 webtool 更有用
  • 别写版本号(如 php81),keywords 不做兼容性判断,PHP 版本约束应写在 require.php

packagist.org 上按 keywords 搜索的实际效果

在 packagist.org 搜索框输关键词,本质是全文检索 + keywords 加权。但它的权重逻辑不透明,容易让人误以为“写了就一定能搜到”。

常见错误现象:

  • cache 出一结果,但你想要的包没排前面——因为它的 keywordsredis-cache,而 cache 本身是停用词,不触发匹配
  • psr-14 没结果,其实是包作者写了 psr14(无短横)或 Event-dispatcher,关键词不统一
  • 大小写敏感:搜 HTTP 不如搜 http,packagist 搜索默认小写归一化,但部分旧包 keywords 仍存大写形式,匹配失败

所以靠 keywords 发现包,更适合作为辅助手段;真要找特定能力,不如直接搜 GitHub + composer.json keywords:

用 composer search 命令查 keywords 效果有限

composer search 看起来是专门搜包的,但它只匹配 name 和 description,完全不看 keywords 字段。这是很多人踩坑的地方——以为输个关键词就能把所有标了该 tag 的包拉出来。

实操建议:

  • 别依赖 composer search logging 找日志相关包,它大概率漏掉 monolog/monolog(因为其 description 是 “Sends your logs to files, sockets…” ,不含 “logging”)
  • 如果非要用命令行批量发现,可以临时 clone packagist 的公开数据集(如 https://www.php.cn/link/9558be539e988fbb9df02fcd4dffbad7),再本地 grep keywords 字段
  • 更现实的做法:用 packagist 网页搜索,打开一个疑似包后,手动点进 composer.json 查 keywords —— 虽然麻烦,但准确

keywords 是作者写的元信息,不是机器可推导的特征。搜不到,大概率不是命令不对,而是别人根本没打你想要的那个 tag。

text=ZqhQzanResources