composer search 只能搜索 Packagist.org 已索引的公开包,且仅匹配包名(name 字段),不搜描述、README 或代码;结果最多10条、不分页、不排序、不区分大小写、不支持通配符;私有包、未抓取包或关键词不在包名中则不可见。

composer search 能搜到哪些包?
composer search 默认只检索 Packagist.org 上已索引的公开包,且仅匹配包名(name 字段),不搜索描述、README 或代码内容。如果你搜 laravel-cache,它只会返回 laravel/framework、laravel/cache 这类名字里真有 “cache” 的包,不会命中描述写 “Laravel cache adapter for Redis” 的第三方包。
- 搜索结果最多返回 10 条,不支持分页或排序
- 不区分大小写,但不支持通配符(
laravel*会报错) - 如果包未被 Packagist 抓取(比如私有仓库未配置镜像或未提交到 Packagist),
composer search完全不可见
怎么用 composer search 查准关键字?
最稳妥的方式是把关键词拆短、试多个变体,并加引号避免空格被截断:
- 直接搜
composer search redis→ 可能返回太多无关项(比如含 “redis” 的测试工具、文档包) - 改用
composer search "laravel-redis"→ 引号确保匹配完整词组,减少噪声 - 尝试组合词:
composer search "cache redis"(注意:这是“cache”和“redis”都出现,非短语匹配) - 如果知道作者名,加前缀更准:
composer search "predis/predis"或composer search predis
别指望它像 Google 那样理解语义——它本质是简单的字符串前缀/子串匹配,不是搜索引擎。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
为什么搜不到你想要的包?常见原因
- 包名不含关键词:比如
spatie/laravel-backup 实际支持 S3,但搜 s3 找不到它
- 包未发布到 Packagist:公司内网私有包、GitHub 直链依赖(
"myorg/mylib": "dev-main")默认不进搜索索引
- 关键词拼写偏差:搜
jwt 能命中,但 json-web-token 可能漏掉(包名通常用缩写)
- Packagist 索引延迟:新发布的包可能要等几小时才可搜到
- Composer 版本太老:
composer search 在 Composer 2.0+ 才稳定支持,1.x 版本可能返回空或格式错乱
替代方案:什么时候该放弃 composer search?
spatie/laravel-backup 实际支持 S3,但搜 s3 找不到它 "myorg/mylib": "dev-main")默认不进搜索索引 jwt 能命中,但 json-web-token 可能漏掉(包名通常用缩写) composer search 在 Composer 2.0+ 才稳定支持,1.x 版本可能返回空或格式错乱 当 composer search 返回结果太少或不准时,直接去 Packagist.org 网页搜索更可靠——它支持描述字段、按下载量排序、过滤 PHP 版本和标签(如 “cache”、“psr-6”)。
命令行下也可用 curl + jq 快速查(需装 jq):
curl -s "https://www.php.cn/link/ec811d0d775adc62776ba80fadd4ed19/search.json?q=redis&type=library" | jq -r '.results[].name'这能绕过 CLI 的限制,但要注意 API 有频率限制,且返回的是原始 JSON,不是美化后的表格。
Packagist 的网页搜索逻辑比 CLI 命令复杂得多,而命令行工具只是个轻量入口——别把它当全能搜索器。真正难找的包,往往得靠 GitHub 按语言+关键词筛,或者翻 Laravel / Symfony 的官方推荐列表。

















