Composer 无法查下载量,必须通过 Packagist 官网或 API 获取;网页右上角显示实时总下载量和月下载量,API 仅提供 monthly 字段,total 始终为 null。

Composer 本身查不到下载量,所有下载统计(包括总安装数、月下载量)必须通过 Packagist 官网或其 API 获取,命令行里 composer show 或 composer install --verbose 都不返回这些数字。
直接在 Packagist 网页查看下载总数和月活数据
这是最简单、最权威的方式。Packagist 页面右上角明确显示「Total downloads」和「Monthly downloads」,数据实时更新,无需登录或鉴权。
- 打开 https://packagist.org/packages/ 后拼上包名,例如 https://www.php.cn/link/6daab15a4f57549b7f236d7f0cfca3c8
- 滚动到页面右上角,就能看到类似 “Total downloads: 242,189,042” 和 “Monthly downloads: 7,215,631” 的统计
- 注意:这个“Installs”不是“用户数”,而是 Packagist 收到的
GET /p2/...请求次数,含重复、CI 构建、镜像同步等,但仍是业界公认基准
用 Packagist API 批量拉取月下载量
如果你要写脚本批量分析多个包(比如做选型对比),Packagist 提供了 JSON 接口,其中 .package.downloads.monthly 字段可用,但要注意它不返回总下载量。
- 执行:
curl -s "https://www.php.cn/link/6daab15a4f57549b7f236d7f0cfca3c8.json" | jq '.package.downloads.monthly' - 返回值是整数(如
7215631),不是字符串;若为null,说明该包尚未被收录进统计周期(新包可能延迟 1–2 天) -
.package.downloads.total字段在 API 响应中始终为null—— Packagist 故意不开放总下载量的 API 接口,仅网页展示 - 别依赖
.package.favers当热度指标:它表示“收藏数”,不是 star,且很多用户从不点收藏,参考价值弱于 GitHub star 或月下载量
为什么不能靠 composer show 或 composer.lock 查下载量?
因为这些本地文件/命令只记录“你装了什么”,不记录“全世界装了多少”。有人误以为解析 composer.lock 能反推使用广度,这是常见误解。
-
composer show monolog/monolog只输出版本、描述、依赖、autoload 等元数据,字段里没有downloads、stars或任何热度相关键 -
composer.lock是项目级快照,只存你当前锁死的包列表和哈希,连自己装了多少次都记不住,更别说全网数据 - 试图用
ls vendor/ | wc -l统计“本地包数量”来类比流行度?完全无效 —— 一个项目引入 50 个包,不代表这 50 个包都热门;反之,symfony/console可能出现在上百万个项目里,但你的vendor/下只有一份
GitHub star 数可以当补充指标,但必须先确认 source URL
很多 PHP 包的 star 数比下载量还受关注,但它和 Packagist 数据是割裂的 —— 没有统一 ID 映射,得靠人工或 URL 解析对齐。
- 先运行:
composer show monolog/monolog -s,看输出里的source是否为 GitHub 格式(如https://github.com/Seldaek/monolog.git) - 如果是,再调 GitHub API:
curl -H "Accept: application/vnd.github.v3+json" https://api.github.com/repos/Seldaek/monolog | jq '.stargazers_count' - 如果
source是 GitLab、Bitbucket 或自定义地址,GitHub API 就查不到;有些包甚至没公开源码仓库(只有 zip dist),这时 star 数就完全不可得 - 别直接拿包名拼 GitHub 路径(比如
monolog/monolog→github.com/monolog/monolog):vendor 名常不一致,laravel/framework的源其实是github.com/laravel/framework,但phpunit/phpunit对应的是github.com/sebastianbergmann/phpunit
真正可靠的组合是:Packagist 月下载量(反映近期真实采用强度) + GitHub star 数(反映开发者兴趣) + 最近一次 time 字段(API 返回的最新版发布时间,判断是否还在维护)。三者缺一不可,而其中只有月下载量能从 API 稳定获取 —— 其他都得靠人眼校验或额外 HTTP 请求。










