composer search 命令自 composer 2.2 起被 packagist 官方永久移除,旧版返回结果无分页、无高亮、不支持过滤;推荐用 curl 直调 https://packagist.org/search.json 接口,并配合 composer show 验证可用性。

composer search 命令已经彻底不能用了
它不是你装错了、没更新、镜像源不对——Packagist 官方在 Composer 2.2 起永久关闭了搜索 API,命令直接报错:Command "search" is not defined。哪怕你硬降到 Composer 1.x,返回的也只是几行无分页、无高亮、不支持过滤的原始文本,实际没法用。
- 别再敲
composer search log或composer search laravel,只会报错或刷出无效结果 -
--only-name、--type=library、--format=json这些参数,只存在于已移除的旧命令里,现在根本不存在 -
composersearch(中间没空格)是早年第三方脚本,接口早已失效,连 JSON 字段都对不上
替代方案:用 curl 直调 Packagist 搜索接口
这是目前最轻量、稳定、无需额外安装、且结果最贴近原 search 行为的方式。Packagist 的公开 JSON 接口仍在运行,响应快、结构清晰。
- 基础命令:
curl -s "https://packagist.org/search.json?q=cache",把cache换成你要的关键词,比如pdf、redis、auth - 想看人话结果?加
jq格式化:curl -s "https://packagist.org/search.json?q=log" | jq '.results[] | {name: .name, desc: .description}' - 没装
jq?至少加| head -n 20避免刷屏,也能快速扫出前几条包名和描述 - 国内用户建议加重试:
curl --retry 2 -s "https://packagist.org/search.json?q=queue",防偶发超时
搜到包名后,必须立刻用 composer show 验证
网页上看着热门、下载量高,不代表它能在你项目里装得上。真实约束只有 composer show 和 composer require --dry-run 才能暴露。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
-
composer show monolog/monolog:成功返回说明包存在、未废弃(abandoned字段会标出)、有稳定版本;失败则明确提示Package not found -
composer require --dry-run phpunit/phpunit:^9:模拟安装,能提前发现 PHP 版本不兼容、依赖冲突、扩展缺失等硬性问题 - 如果你配了国内镜像(如阿里云),
composer show会走镜像源,比curl更快、更准,且直接反映你本地环境的真实可用性
别只信搜索结果,打开 GitHub 仓库再判断一次
Packagist 页面不显示关键事实:作者是否还在维护、PHP 8.3 是否被支持、Issue 有没有人理、最近一次 commit 是不是三年前。
- 复制包名易出错:移动端常多空格,或把
symfony/console复制成symfony/ console,导致require报错 - 页面不标
abandoned,可能点进去才发现作者已弃坑 - 显示所有历史版本,但你的 PHP 是 8.3,它最新版只支持 8.1 —— 网站不会提醒
- 真要深度评估,打开包的 GitHub 仓库,看
Issues是否有近期回复、Recent Commits是否活跃,比看 stars 数实在得多
最省时间的做法,是把 curl 封成 shell 别名,或者养成习惯:搜完立刻 composer show 验证——毕竟最终要敲进 require 的,不是网页标题。










