composer search 命令在 Composer 2.2+ 中已被官方永久移除,因 Packagist 自2022年底关闭搜索 API;替代方案是用 curl 调用 https://packagist.org/search.json?q=关键词,或通过官网网页搜索并配合 composer show 验证。

composer search 命令在 Composer 2.2+ 中已彻底删除,不是你配置错了,而是 Packagist 官方永久关闭了搜索 API —— 现在直接运行会报错 Command "search" is not defined。
为什么 composer search 报错或返回空结果
这不是网络问题、镜像源没配好,也不是命令拼写少空格。Packagist 自 2022 年底起下线搜索后端,Composer 2.2(2023 年发布)正式移除该命令。哪怕你降级到 Composer 1.x,返回结果也仅限前缀匹配、无分页、不支持过滤,实际不可靠。
旧教程里写的 --only-name、--type=library、--format=json 等参数,在当前任何可用版本中都不存在。别再试了。
现在最靠谱的替代方案:用 curl 直调 Packagist 搜索接口
Packagist 的公开 JSON 接口 https://packagist.org/search.json?q=关键词 仍在稳定运行,响应快、结构清晰,是目前最轻量可靠的方案:
- 基础用法:
curl -s "https://packagist.org/search.json?q=cache"(把cache换成你要的词) - 加
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=redis"
注意:该接口只返回前 10 条结果,不支持分页;想多看几条,只能换词重试(比如试 redis client 或 redis library)。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
composer show 不是搜索引擎,但它是验证包是否真能用的关键一步
composer show 默认只列已安装包,不支持模糊搜索,也不是包发现工具。但它能暴露真实约束:
- 查远程包是否存在、是否废弃:
composer show monolog/monolog—— 成功返回说明未被 abandon,有稳定版本;失败则明确提示Package not found - 确认 PHP 版本兼容性:
composer show -s monolog/monolog会显示"php": "^7.4 || ^8.0"这类 require 字段 - 检查扩展依赖:
composer show -s phpunit/phpunit能看到是否要求ext-dom或ext-json - 私有包必须显式指定仓库:
composer show --repository https://your-satis.example.com/packages.json myorg/private-lib,URL 必须是合法的 Composer 包仓库根 JSON 地址,填错会报Could not parse version constraint
搜到包名后最容易忽略的三件事
复制网页上的包名时,常带多余空格或斜杠错误(如 symfony/ console),composer show 会立刻报错,但很多人反复重试而不检查格式。
网页上标“下载量高”不等于适合你项目——有些包(如 psr/log)是被大量间接 require 进来的,本身不供人直接安装。
包页右上角标红的 This package is abandoned 是唯一权威信号,composer show 不显示这个字段,必须人工点开网页确认。

















