不能。Composer 2.2 起移除 composer search,因 Packagist API 停供全文搜索;推荐用 curl 调用其搜索接口或 composer show/–dry-run 验证包可用性。

composer search 命令能直接查包吗?
不能。从 Composer 2.2 开始,composer search 命令已被移除,执行会报错:Command "search" is not defined. 官方明确废弃该功能,原因是 Packagist API 不再提供公开的全文搜索接口,且旧实现依赖已下线的第三方服务。
替代方案:用 curl + Packagist API 查包
目前最稳定、无需额外 工具 的方式是直调 Packagist 的公开搜索接口。它支持关键词匹配(包名、描述、关键词),返回 JSON,可配合 jq 快速过滤:
curl -s "https://packagist.org/search.json?q=cache" | jq '.results[] | {name: .name, desc: .description}'
-
q=cache是搜索关键词,可替换成log、http-client等 - 不装
jq也能看原始结果:curl -s "https://packagist.org/search.json?q=cache" | head -n 20 - 结果按相关性排序,但不支持分页参数(API 默认只返回前 10 条)
- 注意请求频率——无认证时建议间隔 ≥1 秒,避免被限流
本地项目中快速验证包是否可用
如果只是想确认某个包名是否存在、是否稳定,更实用的做法是尝试 composer show 或 composer require --dry-run:
- 查包是否存在且可安装:
composer show monolog/monolog—— 成功返回信息,失败提示Package not found - 模拟安装检查兼容性:
composer require --dry-run phpunit/phpunit:^9—— 不写入composer.json,但会解析依赖并报错(如 PHP 版本不满足、冲突) - 这两个命令走的是本地配置的仓库(默认 Packagist),响应快、结果准,比外部搜索更贴近真实使用场景
为什么 别依赖 浏览器 手动搜 Packagist 网站?
网页搜索看似方便,但实际开发中容易出问题:
- 搜索结果不包含
abandoned(已弃用)状态标识,可能选到无人维护的包 - 看不到当前项目 PHP 版本约束下哪些版本可安装(网站显示所有历史版本)
- 无法批量比对多个包的依赖树或许可证类型
- 移动端体验差,复制包名易多空格或带斜杠错误(比如把
symfony/console复制成symfony/ console)
真正省时间的操作,是把 curl + jq 封装成 shell 别名,或者直接用 composer show 验证——毕竟最终要敲进 require 的,不是网页标题。