唯一可靠方式是直接访问Packagist官网查看实时“Total downloads”数据,因Composer命令及API均不提供该字段;需结合composer show --remote和--show-links交叉验证包的活跃度、维护状态与PHP兼容性。

直接看 Packagist 页面才是唯一可靠方式
Composer 命令本身完全不提供下载量(Installs)数据——composer show、composer search、甚至 Packagist API 都不返回这个数字。Packagist 官网是目前**唯一公开显示「Total downloads」的位置**,且该数据实时更新、不可伪造。
- 执行
composer show --show-links monolog/monolog,快速打开其 Packagist 页面(如 https://www.php.cn/link/6daab15a4f57549b7f236d7f0cfca3c8) - 页面右上角明确标注「Total downloads」,例如当前显示 “1.2B+” 表示超 12 亿次安装
- 别信第三方工具或脚本声称“自动抓取下载量”——Packagist 不开放该字段的 API 接口,所有所谓“API 获取下载量”的尝试实际返回
null或 404
用 composer show --remote 提前避坑比看下载量更重要
高下载量 ≠ 高质量,更不等于还在维护。很多包 Installs 过亿,但 GitHub 最后一次 commit 是 2022 年,Issues 堆了 400+ 无人处理。真正该查的是「是否还在活」。
-
composer show --remote monolog/monolog:看latest stable版本、requires php范围、是否标记为abandoned(红字警告!) -
composer show --show-links monolog/monolog:一键跳转 GitHub,重点核对stargazers_count、pushed_at、open_issues_count - 交叉判断标准:
GitHub stars ≥ 5k+pushed_at 在近 6 个月内+open issues < 50才算健康活跃
别被 composer search 的排序误导
composer search log 返回的第一个包未必是最优解,它只是按 Packagist 内部权重(非下载量)粗略排序,且不反映废弃状态或 PHP 兼容性断层。
- 搜索结果顶部出现
php-logging/php-logging?点进去发现 Packagist 标着 abandoned,且只支持 PHP 7.2 —— 这类包composer show --remote一眼就能筛掉 - 同一关键词下多个包并存时(比如
cache),用composer show --all vendor/package对比各包最新版的time字段和require依赖项,比单纯看搜索顺序靠谱得多 - 网页端搜索(https://www.php.cn/link/626c8e06612900e985ac01abf663cc6f)可按 «Last updated» 或 «Stars» 排序,比命令行灵活得多
想批量评估项目所有依赖?没有一键命令,但有务实路径
不存在 composer show --hotness 这种命令,也别写脚本硬凑「star 总和」——不同包托管平台(GitHub / GitLab / 自建)无法统一调用 API,且 star 数和下载量无正相关性。
- 先用
composer show --tree导出真实依赖结构:composer show --tree | grep -E "^[a-z]" | wc -l得到实际安装的包数量 - 再人工抽查关键依赖(如
guzzlehttp/guzzle、symfony/http-foundation):逐个跑composer show --show-links+ 浏览 Packagist/GitHub 页面 - 如果真要自动化,只建议针对「已知 GitHub 托管」的包,用
curl -s "https://api.github.com/repos/$(composer show vendor/package -s | grep source | awk '{print $3}' | sed 's/.*github.com[:/]//; s/.git$//')" | jq '.stargazers_count,.pushed_at',但必须加source.type = github判断前置校验
下载量只是历史快照,star 数可能刷出来,而最后一次 commit 时间、issue 响应速度、PHP 版本支持范围——这些才决定你下周升级会不会报错。










