Composer 不提供下载量和热度统计,需通过 Packagist 网页查看「Total downloads」和「Last update」;API 仅返回 favers、github_stars 和 time 等元数据,不包含下载总数;GitHub API 可补充 star、fork 等活跃度指标,但需确认 source.url 为 GitHub 仓库。

Composer 本身不提供依赖包的下载量、热度或使用统计功能——这些数据由 Packagist(官方仓库)托管,需通过其公开 API 或网页界面间接获取。
如何查某个包的下载量和最近更新时间
Packagist 提供了每个包的实时下载统计,但只能在网页端查看,API 不直接返回下载总数。访问 https://packagist.org/packages/{vendor}/{package}(例如 https://packagist.org/packages/monolog/monolog),页面右上角会显示「Total downloads」和「Last update」。
注意:composer show 命令只显示本地已安装包的版本、依赖和描述,不包含下载量、star 数或热度指标。
用 Packagist API 获取包基础元数据
可通过 Packagist 的只读 API 查询包是否存在、版本列表、最低 PHP 要求等,但不返回历史下载数。例如:
curl -s "https://packagist.org/packages/monolog/monolog.json" | jq '.package.downloads'
该响应中 .package.downloads 字段实际为 null;真正可用的是 .package.favers(收藏数)和 .package.github_stars(若关联 GitHub 仓库)。
常见可取字段包括:
.package.name.package.description-
.package.favers(Packagist 收藏数) -
.package.github_stars(GitHub star 数,仅当配置了source.type = github) -
.package.time(最新版发布时间)
替代方案:用 GitHub API 补充热度判断
很多 Composer 包托管在 GitHub,可通过 GitHub API 查看真实活跃度:
curl -H "Accept: application/vnd.github.v3+json" \ "https://api.github.com/repos/monolog/monolog"
重点关注字段:
-
stargazers_count(star 数) -
forks_count(fork 数) -
open_issues_count(未关闭 issue 数) -
pushed_at(最后推送时间)
⚠️ 注意:需确认包的 source.url 是否为 GitHub 仓库(可用 composer show monolog/monolog -s 查看),否则 GitHub API 查询无意义。
无法自动聚合全项目依赖热度的原因
没有现成命令能一键输出「当前项目所有依赖的 star 总和」或「下载热度排序」,因为:
- Packagist 不开放下载量 API(防滥用)
- 不同包托管平台(GitHub / GitLab / Bitbucket)需分别调用各自 API
- 本地
composer.lock中不记录外部热度数据 - 部分私有包根本不在 Packagist 公开索引中
如果真需要批量分析,得自己写脚本解析 composer.lock,提取 packages[*].name 和 packages[*].source.url,再按源类型分发请求——但这属于定制开发范畴,不是 Composer 原生能力。










