Composer怎么快速搜索包 命令行search查找扩展包【技巧】

11次阅读

composer search 命令自 Composer 2.2 起已被移除,因 Packagist 关闭搜索 API;应改用 curl -s “https://packagist.org/search.json?q=关键词” 或 composer show 包名 验证可用性。

Composer怎么快速搜索包 命令行search查找扩展包【技巧】

composer search 命令已失效,别再敲了

从 Composer 2.2 开始,composer search 命令已被彻底移除,执行会直接报错:Command "search" is not defined。这不是你环境没配好,也不是镜像源问题——Packagist 官方关闭了全文搜索 API,底层依赖也下线了。继续查文档或翻旧教程,只会浪费时间。

curl + Packagist API 替代,一行就能搜

最轻量、稳定、无需额外安装的方式是直调 Packagist 的公开搜索接口

curl -s "https://packagist.org/search.json?q=cache" | jq '.results[] | {name: .name, desc: .description}'
  • q=cache 可换成任意关键词,如 httppdfauth
  • 不装 jq?用 head -n 20 看原始 JSON 结构也够判断
  • 结果按相关性排序,但只返回前 10 条,且无分页参数;想多看几条,只能换词重试(比如加 clientlibrary
  • 国内用户建议加 --retry 2 防超时:curl --retry 2 -s "https://packagist.org/search.json?q=log"

本地验证比远程搜索更靠谱

你真正要的不是“存在这个包”,而是“它能在我项目里装得上”。所以优先用这两个命令:

  • 查包是否存在、是否活跃维护:composer show monolog/monolog —— 成功返回即说明可用,失败则明确提示 Package not found
  • 模拟安装,检查 php 版本、依赖冲突等真实约束:composer require --dry-run phpunit/phpunit:^9
  • 注意:composer show 走的是你当前项目的仓库配置(含镜像源),响应快、结果准,且能直接看到 abandoned 标识和最新稳定版本

别信网页搜索结果里的“热门第一”

Packagist 网站首页搜出来的 top 包,往往只是下载量高,未必适合你:

  • 页面不标 abandoned,可能点进去才发现作者已弃坑
  • 显示所有历史版本,但你的 PHP 是 8.3,它最新版只支持 8.1 —— 网站不会提醒
  • 复制包名易出错:移动端常多空格,或把 symfony/console 复制成 symfony/ console,导致 require 报错
  • 真要深度评估,打开包的 gitHub 仓库,看 Issues 是否有近期回复、Recent Commits 是否活跃,比看 stars 数实在得多

最省时间的做法,是把 curl 封成 shell 别名,或者养成习惯:搜完立刻 composer show 验证——毕竟最终要敲进 require 的,不是网页标题。

text=ZqhQzanResources