composer search 命令自 Composer 2.2 起已被 Packagist 官方永久移除,替代方案是用 curl 直调 https://packagist.org/search.json?q=关键词,并配合 composer show 和 composer require --dry-run 验证可用性。
composer
search 命令已经彻底不能用了
它不是你装错了、没更新、镜像源不对,而是 Packagist 官方在 Composer 2.2 起永久关闭了搜索 API,命令直接报错:
。哪怕你降级到 Composer 1.x,结果也极简、无分页、不支持关键词过滤,实际价值很低。
别再翻旧教程敲
或
—— 这些现在只会报错或返回几行无效文本
也别信某些文章说“加
就能用”——该参数在已移除的命令里根本不存在
更别折腾什么
(注意中间没空格)——这是早年第三方脚本,早已失效且不兼容当前 Packagist 接口
用 curl 直调 Packagist 搜索接口才是真替代
Packagist 的公开 JSON 接口仍在运行,响应快、结构清晰、无需额外安装工具,是目前最轻量可靠的方案。
基础命令:
,把
换成你要的关键词,比如
、
、
想看人话结果?加
格式化:
没装
?至少加
避免刷屏,也能快速扫出前几条包名和描述
国内用户建议加重试:
,防偶发超时
搜到包名后,必须立刻用
验证
网页上看着热门、下载量高,不代表它能在你项目里装得上。真实约束只有
和
才能暴露。
Composer 2.9.6
Composer 2.9.6 是 PHP 生态中高效、稳定的依赖管理工具。此版本在性能与兼容性上进一步优化,改进了依赖解析算法,提升大型项目中的安装与更新速度。它支持并行下载任务,显著减少等待时间,并增强了与私有仓库及镜像源的交互稳定性。同时修复了多项命令行交互与内存使用相关的缺陷,确保在复杂依赖关系下依然可靠运行。无论是新项目初始化还是现有系统维护,Composer 2.9.6 都能为开发者提供流畅、精准的依赖管理体验。
下载
:成功返回说明包存在、未废弃(
字段会标出)、有稳定版本;失败则明确提示
:模拟安装,能提前发现 PHP 版本不兼容、依赖冲突、扩展缺失等硬性问题
注意:如果你配了国内镜像(如阿里云),
会走镜像源,比 curl 更快、更准,且直接反映你本地环境的真实可用性
别只看搜索结果,打开 GitHub 仓库再判断一次
Packagist 页面不显示关键事实:作者是否还在维护、PHP 8.3 是否被支持、Issue 有没有人理、最近一次 commit 是不是三年前。
点进包页面,找到 GitHub 仓库链接(通常在右上角),直接跳转
看
时间 —— 如果最新提交是 2023 年,大概率已弃坑
翻
列表 —— 有大量未关闭的 bug 或提问,且 maintainer 零回复,风险很高
复制包名时特别小心移动端:容易多空格(如
)或漏斜杠,导致
报错
事情说清了就结束。最常被忽略的其实是第二步和第三步之间的衔接:搜完不验证,直接
,结果卡在依赖冲突里查半天——其实
一行就能提前拦住。
Command "search" is not definedcomposer search logcomposer search laravel--only-namecomposersearchcurl -s "https://packagist.org/search.json?q=cache"cachepdfredisauthjqcurl -s "https://packagist.org/search.json?q=log" | jq '.results[] | {name: .name, desc: .description}'jq| head -n 20curl --retry 2 -s "https://packagist.org/search.json?q=queue"composer showcomposer showcomposer require --dry-runcomposer show monolog/monologabandonedPackage not foundcomposer require --dry-run phpunit/phpunit:^9composer showRecent CommitsIssuessymfony/ consolecomposer requireCould not find packagerequirecomposer show