Composer 官方 CLI 不存在 funding 命令,v2.7.x 中执行会报错“Command 'funding' is not defined”;资助信息仅通过 composer show 自动显示包中 .github/FUNDING.yml 的内容,不提供交互或跳转功能。

Composer 没有 funding 命令 —— 这是常见误解。官方 Composer CLI 中至今(v2.7.x)**不存在该命令**,运行 composer funding 会直接报错:Command "funding" is not defined.
为什么有人以为有 composer funding?
这个误解主要来自两个源头:
- GitHub 的
FUNDING.yml文件被 Composer 自动识别并展示在composer show输出中(但不靠独立命令) - 某些第三方插件(如
hirak/prestissimo旧版或社区脚本)曾模拟实现过类似功能,造成混淆
composer show 如何显示资助信息?
Composer 从 v2.2 起支持读取包根目录下的 FUNDING.yml(或 .github/FUNDING.yml),并在 composer show vendor/package 的输出末尾自动追加 funding 字段(如果存在)。
例如运行:
composer show symfony/console
若该包仓库含有效 .github/FUNDING.yml,你可能看到类似:
funding: [github] https://github.com/sponsors/symfony
注意:这完全依赖包作者是否提交了该文件,且 Composer 不校验链接有效性,也不提供跳转或交互操作。
如何手动查看某个包的资助信息?
没有一键命令,但可组合以下方式快速定位:
- 用
composer show -s vendor/package查看源码仓库地址(source字段) - 拼出 GitHub 地址,手动访问
https://github.com/vendor/package/.github/FUNDING.yml - 或直接访问
https://github.com/vendor/package/blob/main/.github/FUNDING.yml(注意分支名可能是main或master) - 部分包将资助链接写在
README.md或composer.json的support.funding字段(非标准,Composer 不解析)
想真正支持作者?别依赖 Composer 命令
Composer 本身不提供支付、跳转、统计或集成赞助平台的能力。目前最可靠路径是:
- 确认包仓库的
.github/FUNDING.yml内容(它定义了 GitHub Sponsors、Open Collective、Liberapay 等入口) - 手动打开对应链接完成资助
- 如需自动化,可写简单脚本解析 JSON/YAML 并
open或xdg-open(但需自行处理权限与格式)
真正关键的不是命令是否存在,而是包作者是否维护了 .github/FUNDING.yml —— 这个文件没提交,再好的命令也查不到东西。










